L I N U X

BÀI 5

BẢO MẬT HỆ THỐNG FILE

Bài 5: Bảo mật hệ thống file

Mục tiêu: (cid:0) Hiểu các mức độ phân quyền trên Linux (cid:0) Dùng lệnh phân quyền cho tài khoản

1. Tổ chức hệ thống file trong Linux

1.1. Files 1.1. Files

Một file là một cấu trúc cơ sở được dùng để chứa thông tin trên hệ thống Linux. File là một dãy liên tiếp các byte được chứa trên một thiết bị lưu trữ, thường là đĩa từ.

Chú ý:

VD: Baocao và baocao là 2 tên file khác nhau.

- Linux không coi dấu chấm (“.”) là ký tự ngăn cách giữa tên chính và phần mở rộng như DOS mà nó coi đó như là một ký tự để tạo nên tên file.

- Linux phân biệt chữ hoa và chữ thường trong tên file.

1. Tổ chức hệ thống file trong Linux (tt)

1.2. Thư mục 1.2. Thư mục

Thư mục bao gồm một nhóm file, thư mục giúp người dùng tổ chức các file. Mỗi thư mục có thể bao gồm các thư mục con.

/

usr

etc

dev

home

tmp

binz

lib

user1

user2

Ta có thể mô tả cấu trúc cơ sở cây thư mục của Linux như sau :

tinhoc

toan

Web

Linux

Tôi thích vậy đó, ai biểu anh xóa folder của tôi

Tại sao anh xem nội dung file của tôi ???

Bill Clinton

Bill Gates

2. Bảo mật hệ thống file

2.1. Khái niệm 2.1. Khái niệm

Bảo mật hệ thống file là điều khiển việc truy nhập tới

file và thư mục, nó xác định:

+ Ai là người truy nhập đến một file, thư mục nào đó.

+ Các thao tác nào mà người sử dụng được tiến hành

đối với file và thư mục.

 Người chủ file, thư mục sẽ toàn quyền quyết định ai được phép truy nhập với quyền nào đến file và thư mục thông qua việc gán và huỷ quyền truy nhập (permission).

 Những đối tượng có thể truy nhập đến file, thư

mục là:

+ Người chủ của file (user).

+ Nhóm chủ của file (group).

+ Những người khác (other).

Ví dụ: $ls -l

- rw-r--r-- 1 u1 g1 37 Feb 24 11:06 file1

Trong đó:

- : chỉ ra kiểu của file.

rw-r--r-- : chỉ ra mode của file (quyền truy nhập).

u1 : chỉ ra người chủ file.

g1 : chỉ ra nhóm chủ file.

2. Bảo mật hệ thống file (tt)

2.2. Các quyền truy nhập 2.2. Các quyền truy nhập Có 3 quyền truy nhập tới mỗi file và thư mục:

- Read r

+ Đối với file : Đọc nội dung file. + Đối với thư mục : hiện danh sách các file và thư mục con trong thư mục.

- Write w

+ Đối với file : Thay đổi nội dung file. + Đối với thư mục : Tạo, xoá, đổi tên file và thư mục con trong thư mục.

- Execute x

+ Đối với file : Chạy các file chương trình. + Đối với thư mục : Có thể chuyển đến thư mục.

Chú ý: Để chạy một file chương trình cần có các quyền read và execute.

2. Bảo mật hệ thống file (tt)

2.3. Mode của file 2.3. Mode của file

Mode của file là một dãy có tổng số 9 ký tự bao gồm

3 cặp, mỗi cặp 3 ký tự để xác định các quyền cho các đối

tượng có thể truy nhập file là: người chủ file, nhóm chủ

file và những người dùng khác trong hệ thống. Mode của

file xuất hiện ngay sau ký tự chỉ kiểu file trong kết xuất

của lệnh ls -l

$ls -l Ví dụ: $ls -l Ví dụ:

- rw-r--r-- 1 u1 g1 37 Feb 24 11:06 file1 - rw-r--r-- 1 u1 g1 37 Feb 24 11:06 file1

Các quyền truy nhập của mỗi đối tượng

như sau: + Người chủ file (u1):

rw

+ Nhóm chủ file (g1): r

Chú ý: Các quyền không được phép trong mode của file ký hiệu là “-”.

+ Những người khác: r

2. Bảo mật hệ thống file (tt)

2.4. Thay đổi quyền truy xuất của file 2.4. Thay đổi quyền truy xuất của file

Ta có thể thay đổi quyền được gán với file hoặc thư

mục bằng lệnh chmod. Ta có thể thực hiện lệnh này theo

chế độ biểu tượng hay tuyệt đối, trong đó chế độ biểu

tượng đơn giản hơn nhưng cho phép điều khiển kém hơn

chế độ tuyệt đối. Lệnh chmod chỉ được thực hiện bởi

người chủ file.

Chế độ biểu tượng Chế độ biểu tượng

(cid:0) Để thay đổi quyền của file hay thư mục ta dùng lệnh chmod với cú pháp chặt chẽ như sau:

#chmod (cid:0) Trong đó, biểu thức gán quyền mô tả sự thay đổi quyền đối với file đã chỉ ra cho các đối tượng.

(cid:0) Thành phần biểu thức bao gồm: Thành phần biểu thức bao gồm:

a) Các toán hạng: là các ký hiệu của các đối tượng được gán quyền và các quyền tương ứng được gán.

+ Các ký hiệu của các đối tượng.

u g o a

user group other all

+ Các ký hiệu quyền + Các ký hiệu quyền readread r r w w writewrite x x

execute execute

b) Các toán tử: là các phép gán quyền.

++ -- ==

thêm thêm bớtbớt bằng bằng

Trong các biểu thức gán quyền, các thành phần nằm liền nhau không có khoảng cách và chỉ cho phép dùng một toán tử duy nhất.

(cid:0)

Ví dụ:

$ ls -l vd.txt

-rw-r--r-- 1 u1 g1 37 Feb 24 11:06 vd.txt

$ chmod g=rw vd.txt $ ls -l vd.txt

-rw-rw-r-- 1 u1 g1 37 Feb 24 11:06 vd.txt

$ chmod go+x vd.txt $ ls -l vd.txt

Lệnh chmod nếu không chỉ ra đối tượng gán quyền,

thì quyền sẽ được gán cho cả 3 đối tượng.

Ví dụ: $ chmod +rwx vd.txt

(cid:0) Để huỷ bỏ tất cả các quyền được gán

cho file, thư mục ta dùng lệnh:

$ chmod =

(cid:0) Khi gán quyền bằng toán tử ‘’=’’ thì chỉ đối tượng được gán bị thay đổi quyền như được chỉ ra, bất kể trước đó họ được đặt quyền gì, các nhóm quyền của người khác cũng không bị ảnh hưởng.

Chú ý:

(cid:0) ký hiệu “-“ trong khối quyền của file chỉ rằng quyền đó không được phép đối với file hay thư mục.

(cid:0) Lệnh #chmod -R sẽ thay đổi quyền cho cả cây thư mục. Còn theo mặc định, các thư mục con và file trong cây thư mục có quyền mặc định (022) tạo bởi lệnh umask.

Chế độ tuyệt đối

(cid:0) Chế độ tuyệt đối dùng dãy các số để chỉ các quyền được gán cho file hay thư mục. Khối quyền được biểu diễn bằng 3 số theo thứ tự là: số đầu tiên cho chủ file, số thứ 2 cho nhóm chủ file và số thứ 3 cho những người khác. Mỗi số là tổng 3 giá trị thể hiện quyền đọc, ghi và thực thi đối với file. Cả 3 số được chỉ ra trong cùng một dòng lệnh.

(cid:0) Các số được gán cho quyền tương ứng như

sau:

read = 4 write = 2 execute = 1 không quyền = 0

(cid:0) Các số trong mỗi nhóm quyền của từng đối

tượng (chủ file, nhóm chủ file và người khác) được cộng với nhau, sau đó viết liên tiếp 3 số tạo được liền nhau và dùng để gán quyền.

Ví dụ: để gán quyền cho file vd.txt với khối quyền là

rw-r----x ta thực hiện theo các bước sau:

(cid:0) số biểu diễn quyền gán cho mỗi đối tượng:

(cid:0) Dãy số biểu diễn khối quyền được gán là: 641.

(cid:0) Dùng lệnh chmod để gán quyền cho file.

rw- Người chủ file Nhóm chủ file r-- Những người khác --x : 4+2+0=6 : 4+0+0=4 : 0+0+1=1

(cid:0) Khi đó, quyền truy nhập đến file vd.txt là rw-r----x

#chmod 641 vd.txt

Chú ý:

- Để huỷ bỏ tất cả các quyền đã gán cho file trong chế độ tuyệt đối, ta dùng lệnh:

#chmod 000

 ấn định quyền mặc định cho file và thư mục ấn định quyền mặc định cho file và thư mục

(cid:0) Theo mặc định, các file hay thư mục do người dùng tạo ra trong phiên làm việc luôn có khối quyền là rw-r--r-- tương ứng với dãy số quyền là 022.

(cid:0) Ta cũng có thể ấn định lại quyền mặc định đối với file và thư mục được người dùng tạo ra bằng lệnh umask.

(cid:0) Để đặt quyền mặc định ta dùng lệnh Để đặt quyền mặc định ta dùng lệnh với cú pháp sau: umask với cú pháp sau: umask

n1n2n3 $umask n1n2n3 $umask

Trong đó: Trong đó:

- - n1n2n3 là một nhóm 3 chữ số, khi đó dãy số biểu diễn khối quyền sẽ là (7-n1)(7-n2)(7-n3).

(cid:0) Các giá trị đặc biệt trong 3 số n1, n2, n3 của lệnh umask tương ứng với ấn định các quyền như sau:

0: đọc và ghi (và thực thi cho thư mục).

1: đọc và ghi (không thực thi cho thư mục).

2: đọc (và thực thi cho thư mục).

3: đọc (và không thực thi cho thư mục).

4: ghi (và thực thi cho thư mục).

5: ghi (và không thực thi cho thư mục).

6: thực thi.

7: không có quyền gì cả.

Ví dụ: $umask 067

(cid:0) Lệnh này sẽ ấn định quyền mặc định là 710,

tức là:

các file tạo ra sẽ có khối quyền là rw---x---

Chú ý:

Lệnh umask không có tham số sẽ hiện giá trị số của chuỗi quyền

mặc định hiện thời tạo bởi lệnh umask.

Ví dụ: $umask

các thư mục có khối quyền là rwx--x---

022

Bài tập 1:

1. Xem thông tin về quyền hạn trên tập tin

baitho.txt

2. Thêm quyền execute cho user, quyền write và

execute cho group

3. #chmod 644 baitho.txt ~> cho biết quyền hạn

trên tập tin baitho.txt

4. #chmod 764 baitho.txt ~> cho biết quyền hạn

trên tập tin baitho.txt

5. #chmod 777 baitho.txt ~> cho biết quyền hạn

trên tập tin baitho.txt

Bài tập 2:

1. Đăng nhập root

2. Tạo mới tập tin /home/baocao.txt

3. Tạo mới tài khoản nobita

4. Đổi chủ sở hữu của tập tin /home/baocao.txt

là nobita

5. Phân quyền rwxr--r-- cho các đối tượng trên

tập tin /home/baocao.txt

Bài tập 3:

1. Đăng nhập root

2. Tạo nhóm hanhchinh

3. Tạo mới tài khoản u1, u2

4. Bổ sung 2 user trên vào nhóm hanhchinh

5. Tạo mới thư mục /home/common

6. Đổi nhóm sở hữu thư mục /home/common là

nhóm hanhchinh

7. Phân quyền rwx cho nhóm hanhchinh trên thư

mục /home/common

(cid:0) Để phân quyền chi tiết cho từng user

hoặc nhóm ta dùng lệnh setfacl

$setfacl –m u:doremon:r vanban.txt

(cid:0) Để xem sự phân quyền chi tiết của tập

tin, thư mục ta dùng lệnh getfacl

$getfacl vanban.txt

Bài tập 1

1. Tạo cây thư mục sau:

Doremon

Nobita

/ |_____Doremon | | |_____Secret | | | |_____Music | | |_____Data

2. Tạo 2 tài khoản nobita và doremon, mật khẩu: 123456

3. Phân quyền cho Nobita và Doremon có thể tạo, xoá, sửa nội dung của Data

4. Doremon được toàn quyền trên thư mục Doremon

5. Không cho quyền Nobita truy cập vào thư mục Secret

6. Cho phép Nobita được truy cập vào thư mục Music nhưng chỉ được quyền đọc

Bài tập 2

1. Tạo cây thư mục sau:

/ |_____Data | |_____DuLieuChung | |_____Ketoan | |_____Nhansu

2. Tạo group KeToan. Tạo các user: u1, u2, u3, mật khẩu 123456. Đưa các

user này vào group KeToan

3. Tạo group NhanSu. Tạo các user: u4, u5, u6, mật khẩu 654321. Đưa các

user này vào group NhanSu

4. Trên thư mục Data : group KeToan và NhanSu có quyền read.

5. Trên thư mục DuLieuChung : group KeToan và NhanSu có toàn quyền.

6. Trên thư mục KeToan : group KeToan có toàn quyền, NhanSu thì không.

7. Trên thư mục NhanSu : group NhanSu có toàn quyền, KeToan thì không.

Bài tập 3

1. Tạo cây thư mục sau:

/

Doremon

Nobita

|_____dulieuketoan.txt

| |_____Ketoan | | |_____Music

|_____Kinhdoanh | |_____English

|_____voanews.txt

|_____Doremon | | | | | | |_____Nobita | | | | | |_____Dulieu

|_____baihat.txt

2. Phân quyền cho Nobita và Doremon sao cho phù hợp nhất