Mỗi đối tượng file được gắn với ba loại quyền: read (đọc), write (sửa đổi) và execute (thực thi). Và mỗi quyền này lại được chỉ định cho ba loại user:
- owner : chủ sở hữu của đối tượng – mặc định ban đầu là user tạo ra đối tượng đó.
- group : nhóm các user chia sẻ chung quyền hạn truy cập – mặc định ban đầu là group mà owner ở trên thuộc về.
- others : tất cả các user không thuộc hai nhóm trên.
Ý nghĩa của ba loại quyền này là:
Read: cho phép đọc.
Write: cho phép chỉnh sửa nội dung, xóa file; cho phép tạo và xóa các đối tượng trong thư mục.
Excute: cho phép thực thi hoặc truy cập nếu đó là thư mục.
Các quyền cho mỗi đối tượng được biểu diễn theo hai cách
Cách thứ nhất là biểu diễn bằng một chuỗi gồm 10 ký tự:
- Ký tự đầu thể hiện loại file:
- : Tệp tin thông thường
d : Thư mục
l : Liên kết
c : Special file
s : Socket
p : Named pipe
b : Thiết bị
- Ba ký tự tiếp là các quyền cho owner.
- Kế đến là ba ký tự biểu diễn các quyền cho group.
- Còn lại ba ký tự cuối dành cho other.
Để xem chi tiết các quyền của tệp tin, bạn sử dụng lệnh ls với tùy chọn -l
$ ls -lGiải thích chi tiết:
-rwxr-xr-x 1 ubuntu ubuntu 9144 2011-07-07 15:16 a.out
drwxr-xr-x 2 ubuntu ubuntu 4096 2011-07-07 15:29 Desktop
-rw-r–r– 1 ubuntu ubuntu 68 2011-07-07 15:16 main.c
- a.out : đây là file thực thi thông thường
- Desktop : đây là một thư mục
- main.c : đây là file thường, chủ sở hữu có quyền đọc và ghi; nhóm có quyền đọc; người khác có quyền đọc
Số đầu cho owner, số thứ hai cho group, số còn lại cho other. Mỗi một số nhận một trong tám giá trị sau:
0 : cấm tất cả các quyềnChỉ cần đổi ra dạng nhị phân, bạn sẽ hiểu ngay được các con số này.
1 : execute
2 : write
3 : execute + write
4 : read
5 : read + execute
6 : read + write
7 : read + write + execute
Để thay đổi quyền hạn truy cập cho các user sử dụng lệnh chmod (bạn phải là owner của file hoặc có quyền root)
$ chmod 744 main.c # main.c sẽ có thuộc tính là: -rwxr–r–Có một cách khác là sử dụng chmod bằng cách sử dụng ký tự đại diện. Các ký tự đại diện cho nhóm là:
- u : user sở hữu file
- g : group của user trên
- o : others
- a : tất cả ba ký hiệu ở trên
- + : thêm quyền
- - : bớt quyền
- = : gán quyền
$ chmod +x demo.sh # mặc định là u nên ở đây không cần nữaĐể thay đổi owner cho đối tượng sử dụng lệnh chown (bạn phải có quyền root):
$ chmod u+rwx,go-rwx demo.sh # bạn đoán thử xem!
$ chown User_Name File_NameĐể thay đổi group cho đối tượng sử dụng lệnh chgrp nhưng phải thỏa một trong hai điều kiện sau:
- Bạn sử dụng quyền root
- Bạn là chủ sở hữu và thuộc Group (có tên là Group_Name trong lệnh) mà bạn muốn thay đổi Group cho file:
$ chgrp Group_Name File_NameĐể biết mình thuộc các nhóm nào, bạn sử dụng lệnh ‘id’. Lệnh này cho biết id cùng với tên của bạn và các nhóm mà bạn tham gia.
Các thuộc tính khác của tệp tin liên quan đến quyền truy cập rất đáng chú ý khác nữa là: Set user ID, set group ID, sticky bit. Các bít này bổ xung thêm cho các quyền đã mô tả ở trên. Sau đây là mô tả chi tiết ba bít này:
- SUID hay setuid: thay đổi việc thực thi dành cho user ID. Nếu như setuid được đặt, khi tệp tin được thực thi bởi người dùng (user), tuyến trình được tạo ra sẽ có cùng quyền với tệp tin.
- SGID hay setgid: thay đổi việc thực thi dành cho group ID. Giống như ở trên, nhưng kế thừa các quyền của nhóm. Đối với các thư mục điều đó có nghĩa là khi một tệp tin được tạo ra trong thư mục nó sẽ kế thừa nhóm của thư mục (và không ai là người tạo ra cả).
- Bít Sticky: Hiện nay nó ứng xử phụ thuộc vào từng hệ thống và nó thường được sử dụng để chống việc xóa các tệp tin mà tập tin này có quan hệ với những người dùng khác trong thư mục nơi bạn có quyền “write”.
- SUID: Nếu được đặt, sẽ thay thế “x” trong quyền chủ sở hữu thành “s”, nếu chủ sở hữu có quyền thực thi, còn nếu không thì thành “S”. Ví dụ:
-rws—— cả quyền thực thi và SUID được đặt.
-r-S—— SUID được đặt, nhưng quyền thực thi thì không.
- SGID: Nếu được đặt, sẽ thay thế “x” trong nhóm thành “s”, nếu nhóm có quyền thực thi, còn nếu không thì thành “S”. Ví dụ:
-rwxrws— nhóm có quyền thực thi và bít SGID được đặt.
-rwxr-S— SGID được đặt, nhưng nhóm này không được thực thi.
- Sticky: Nếu được đặt, sẽ thay thế “x” trong others thành “t”, nếu others có quyền thực thi, còn nếu không thì thành “T”. Ví dụ:
-rwxrwxrwt others có quyền thực thi và bít sticky được đặt
-rwxrwxr-T sticky được đặt, nhưng quyền thực thi cho others thì không.
Nguồn : http://www.gocit.vn/bai-viet/quyen-truy-cap-file-tren-linux/
No comments:
Post a Comment