phatnguyen
Administrator
Nội dung
1. Cấu trúc hệ thống tập tin
2. Lệnh thay đổi quyền chủ sở hữu (Owner)
3. Lệnh thay đổi quyền nhóm chủ sở hữu (group)
4. Lệnh thay đổi quyền (đọc, ghi, thực thi) của tập tin thư mục
5. Quyền mặc định (default permissions)
6. Quyền đặc biệt
1. Cấu trúc hệ thống tập tin
Tập tin trong Linux được chia ra làm 3 loại chính:
Các thông tin từ trái sang phải của phần thể hiện ở trên sẽ như sau:
- Cột 1 ("-rw-r--r--" hoặc "drwxr-xr-x"): Chỉ ra quyền truy cập của tập tin hay thư mục.
Theo ví dụ "rw-r--r--" thì user chủ sở hữu có quyền rw, nhóm chủ sở hữu và other có quyền r.
Nói cách khác, sẽ có 3 đối tượng chính là {owner, group, other} và mỗi đối tượng ứng với 3 quyền cụ thể {read, write, execute}.
Quyền read cho phép đọc nội dung của tập tin. Đối với thư mục, quyền đọc cho phép di chuyển vào thư mục và xem nội dung của thư mục.
Quyền write cho phép thay đổi nội dung hay xóa tập tin. Đối với thư mục, quyền write cho phép tạo, xóa, thay đổi tên các tập tin trong thư mục không phục thuộc vào quyền cụ thể của tập tin trong thư mục. Như vậy, quyền write của thư mục sẽ vô hiểu hóa các quyền truy cập của tập tin trong thư mục.
Quyền execute cho phép gọi chương trình lên bộ nhớ bằng cách nhập từ bàn phím tên của tập tin. Đối với thư mục, có thể vào thư mục bởi lệnh cd nếu có quyền thực thi với thư mục.
Song song với các ký hiệu miêu tà bằng ký tự ở trên, quyền hạn truy cập còn có thể biểu diễn dưới dạng 3 số. Nếu tính từ bên trái qua thì số đầu tiên đại diện cho quyền của Owner, số thứ hai đại diện cho quyền của Group, số thứ 3 đại diện cho quyền Other. Mỗi số là một nhóm 3 bit. Quyền hạn cho từng loại người dùng sử dụng một số có 3 bit tương ứng cho 3 quyền read, write và execute. Theo đó nếu cấp quyền thì bit đó là 1, ngược lại là 0 (không cấp quyền). Giá trị nhị phân của số 3 bit này xác định các quyền cho nhóm người đó.
Cụ thể hơn khi cấu hình, có thể chuyển đổi giữa thập phân, nhị phân. Bảng sau sẽ chỉ ra điều này:
2. Lệnh thay đổi quyền chủ sở hữu (Owner)
Cấn chú ý là các lệnh liên quan đến thay đổi quyền sở hữu thì phải thực hiện trên user chủ sở hữu trên chính tập tin hay thư mục đó hoặc user root.
Ví dụ: logon bằng user root và tạo file test.txt. test.txt. Thay đổi quyền sở hữu file test.txt cho user u2.
Nếu muốn thay đổi chủ sở hữu cho một thư mục và các thư mục con bên trong thì dùng option -R cho lệnh chown.
Ví dụ: logon bằng user root và tạo cấu trúc sau /teo/ti/xyz.txt. Thay đổi quyền sở hữu /teo cho user u2.
3. Lệnh thay đổi quyền nhóm chủ sở hữu (group)
Cú pháp:
Tương tự như lệnh chown thì nếu muốn thay đổi chủ sở hữu cho một thư mục và các thư mục con bên trong thì dùng option -R cho lệnh chgrp.
Ví dụ: thay đổi nhóm sở hữu của /teo/ti/xyz.txt cho nhóm kinhdoanh
4. Lệnh thay đổi quyền (đọc, ghi, thực thi) của tập tin thư mục
Cú pháp:
Hoặc
Ví dụ 1: Kiểm tra quyền hiện tại của /test.txt và thêm quyền thực thi cho /test
Ví dụ 2: Kiểm tra quyền hiện tại của /teo/ti/xyz.txt và sửa quyền thành 750 cho /teo/ti/xyz.txt. Quyền 750 nghĩa là user chủ sở hữu có đọc, ghi và thực thi, group chủ sở hữu có quyền đọc và thực thi, còn other thì không có quyền.
5. Quyền mặc định (default permissions)
Umask (user mask) được sử dụng để kiểm soát quyền mặc định của các files, thư mục mới khi nó được tạo ra. Có thể gán umask mặc định trong /etc/bashrc hoặc /etc/profile cho tất cả các users. Phần lớn các distro đều gán là 022 hoặc 002. Để gán umask cho một user xác định nào đó, bạn có thể chỉnh sửa etc/bashrc của user đó.
Thực hiện mở file /etc/bashrc bằng cat hoặc vi:
Trong Linux, khi một file hay một thư mục được tạo ra thì các quyền hạn truy cập đối với chúng là (read, write, execute) cho các chủ thể (owner, group, other) sẽ được xác định dựa trên hai giá trị là quyền truy nhập cơ sở (base permission) và mặt nạ (mask). Đối với thư mục, quyền truy cập cơ sở là 0777(rwxrwxrwx), còn đối với files là 0666 (rw-rw-rw).
Giá trị “mask” được thiết lập nhờ lệnh umask (quan sát hình ở trên). Tất cả các file và thư mục được tạo ra sau đó sẽ chịu ảnh hưởng của giá trị mask mới.
Quyền truy cập chính thức được tính bằng cách lấy “giá trị nhị phân của Base permission" "AND" dạng biểu diễn bù 1 của mask" <=> "quyền truy cập mặc định" AND "(NOT (Giá trị umask))".
Ví dụ:
Bash permission của file: 666 = 110110110
umask: 022 = 000010010
NOT (umask) = NOT (000010010 ) = 111101101
110 110 110 AND 111 101 101 = 110 100 100 = 644.
Cũng có thể tính quyền truy cập chính thức đơn giản hơn bằng cách lấy Bash permission – umask (666 – 022 = 644). Nhưng chỉ đúng với thư mục.
Còn với file thì Bash permission – umask. Sau đó số nào chẵn giữ nguyên, số nào lẻ thì giảm đi 1.
Nếu giá trị umask mặc định cho user thường là 002 thì quyền hạn truy cập mặc định cho thư mục là 775 và file là 664.
Còn nếu giá trị umask mặc định cho user thường là 0022 thì quyền hạn truy cập mặc định cho thư mục là 755 và file là 644.
6. Quyền đặc biệt
Ngoài các quyền cho Owner, Group, Other thì còn có các quyền đặc biệt. Các quyền đặc biệt này bap gồm: SUID (Set User ID), SGID (Set Group ID), Sticky bit.
1. Cấu trúc hệ thống tập tin
2. Lệnh thay đổi quyền chủ sở hữu (Owner)
3. Lệnh thay đổi quyền nhóm chủ sở hữu (group)
4. Lệnh thay đổi quyền (đọc, ghi, thực thi) của tập tin thư mục
5. Quyền mặc định (default permissions)
6. Quyền đặc biệt
1. Cấu trúc hệ thống tập tin
Tập tin trong Linux được chia ra làm 3 loại chính:
+ Tập tin chứa dữ liệu bình thường.
+ Tập tin thư mục.
+ Tập tin thiết bị.
Ngoài ra Linux còn dùng các Link (hard-link, soft-link) và Pipe như là các tập tin đặc biệt.- Cột 1 ("-rw-r--r--" hoặc "drwxr-xr-x"): Chỉ ra quyền truy cập của tập tin hay thư mục.
+ Ký tự đầu tiên ("-" trong ("-rw-r--r--" hoặc "d" trong "drwxr-xr-x") chính là loại tập tin, thư mục.
- | Tập tin thông thường |
b | Thiêt bị ngoài vi dạng block (như ổ đĩa cứng) |
c | Thiết bị ngoại vi dạng ký tự (như bàn phím) |
d | Thư mục |
l | Tập tin liên kết |
+ Các ký tự tiếp theo trong cột đầu tiên ("rw-r--r--" trong ("-rw-r--r--" hoặc "rwxr-xr-x" trong "drwxr-xr-x" chính là quyền của tập tin thư mục. Chú ý là quyền này được chia thành 3 nhóm. 1 nhóm gồm 3 ký tự.
Owner: user chủ sở hữu | Group: group chủ sở hữu | Other: | |
rw-r--r-- | rw- | r-- | r-- |
rwxr-xr-x | rwx | r-x | r-x |
Theo ví dụ "rw-r--r--" thì user chủ sở hữu có quyền rw, nhóm chủ sở hữu và other có quyền r.
Nói cách khác, sẽ có 3 đối tượng chính là {owner, group, other} và mỗi đối tượng ứng với 3 quyền cụ thể {read, write, execute}.
Quyền read cho phép đọc nội dung của tập tin. Đối với thư mục, quyền đọc cho phép di chuyển vào thư mục và xem nội dung của thư mục.
Quyền write cho phép thay đổi nội dung hay xóa tập tin. Đối với thư mục, quyền write cho phép tạo, xóa, thay đổi tên các tập tin trong thư mục không phục thuộc vào quyền cụ thể của tập tin trong thư mục. Như vậy, quyền write của thư mục sẽ vô hiểu hóa các quyền truy cập của tập tin trong thư mục.
Quyền execute cho phép gọi chương trình lên bộ nhớ bằng cách nhập từ bàn phím tên của tập tin. Đối với thư mục, có thể vào thư mục bởi lệnh cd nếu có quyền thực thi với thư mục.
0 hoặc -- | Không có quyền |
4 hoặc r-- | Quyền đọc |
2 hoặc -w- | Quyền ghi |
1 hoặc --x | Quyền thực thi |
Song song với các ký hiệu miêu tà bằng ký tự ở trên, quyền hạn truy cập còn có thể biểu diễn dưới dạng 3 số. Nếu tính từ bên trái qua thì số đầu tiên đại diện cho quyền của Owner, số thứ hai đại diện cho quyền của Group, số thứ 3 đại diện cho quyền Other. Mỗi số là một nhóm 3 bit. Quyền hạn cho từng loại người dùng sử dụng một số có 3 bit tương ứng cho 3 quyền read, write và execute. Theo đó nếu cấp quyền thì bit đó là 1, ngược lại là 0 (không cấp quyền). Giá trị nhị phân của số 3 bit này xác định các quyền cho nhóm người đó.
Bit 2 | Bit 1 | Bit 0 |
Read | Write | Execute |
Cụ thể hơn khi cấu hình, có thể chuyển đổi giữa thập phân, nhị phân. Bảng sau sẽ chỉ ra điều này:
Thập phân | Nhị phân | Quyền | Ý nghĩa |
0 | 000 | --- | Không có mọi quyền |
1 | 001 | --x | Quyền thực thi |
2 | 010 | -w- | Quyền ghi |
3 | 011 | -wx | Ghi và thực thi |
4 | 100 | r-- | Quyền đọc |
5 | 101 | r-x | Đọc và thực thi |
6 | 110 | rw- | Đọc và ghi |
7 | 111 | rwx | Toàn quyền |
2. Lệnh thay đổi quyền chủ sở hữu (Owner)
Cấn chú ý là các lệnh liên quan đến thay đổi quyền sở hữu thì phải thực hiện trên user chủ sở hữu trên chính tập tin hay thư mục đó hoặc user root.
Cú pháp:
[root@localhost Desktop]#chown [user] [tập tin thư mục]
Ví dụ: logon bằng user root và tạo file test.txt. test.txt. Thay đổi quyền sở hữu file test.txt cho user u2.
Ví dụ: logon bằng user root và tạo cấu trúc sau /teo/ti/xyz.txt. Thay đổi quyền sở hữu /teo cho user u2.
Cú pháp:
Ví dụ: thay đổi nhóm sở hữu của /test.txt cho nhóm kinhdoanh[root@localhost Desktop]#chgrp [nhóm] [tập tin thư mục]
Ví dụ: thay đổi nhóm sở hữu của /teo/ti/xyz.txt cho nhóm kinhdoanh
4. Lệnh thay đổi quyền (đọc, ghi, thực thi) của tập tin thư mục
Cú pháp:
[root@localhost Desktop]#chmod [+ quyền theo ký tự] [tập tin thư mục]
Hoặc
[root@localhost Desktop]#chmod [quyền theo số thập phân] [tập tin thư mục]
Ví dụ 1: Kiểm tra quyền hiện tại của /test.txt và thêm quyền thực thi cho /test
5. Quyền mặc định (default permissions)
Umask (user mask) được sử dụng để kiểm soát quyền mặc định của các files, thư mục mới khi nó được tạo ra. Có thể gán umask mặc định trong /etc/bashrc hoặc /etc/profile cho tất cả các users. Phần lớn các distro đều gán là 022 hoặc 002. Để gán umask cho một user xác định nào đó, bạn có thể chỉnh sửa etc/bashrc của user đó.
Thực hiện mở file /etc/bashrc bằng cat hoặc vi:
Trong Linux, khi một file hay một thư mục được tạo ra thì các quyền hạn truy cập đối với chúng là (read, write, execute) cho các chủ thể (owner, group, other) sẽ được xác định dựa trên hai giá trị là quyền truy nhập cơ sở (base permission) và mặt nạ (mask). Đối với thư mục, quyền truy cập cơ sở là 0777(rwxrwxrwx), còn đối với files là 0666 (rw-rw-rw).
Giá trị “mask” được thiết lập nhờ lệnh umask (quan sát hình ở trên). Tất cả các file và thư mục được tạo ra sau đó sẽ chịu ảnh hưởng của giá trị mask mới.
Quyền truy cập chính thức được tính bằng cách lấy “giá trị nhị phân của Base permission" "AND" dạng biểu diễn bù 1 của mask" <=> "quyền truy cập mặc định" AND "(NOT (Giá trị umask))".
Ví dụ:
Bash permission của file: 666 = 110110110
umask: 022 = 000010010
NOT (umask) = NOT (000010010 ) = 111101101
110 110 110 AND 111 101 101 = 110 100 100 = 644.
Cũng có thể tính quyền truy cập chính thức đơn giản hơn bằng cách lấy Bash permission – umask (666 – 022 = 644). Nhưng chỉ đúng với thư mục.
Còn với file thì Bash permission – umask. Sau đó số nào chẵn giữ nguyên, số nào lẻ thì giảm đi 1.
Nếu giá trị umask mặc định cho user thường là 002 thì quyền hạn truy cập mặc định cho thư mục là 775 và file là 664.
Còn nếu giá trị umask mặc định cho user thường là 0022 thì quyền hạn truy cập mặc định cho thư mục là 755 và file là 644.
6. Quyền đặc biệt
Ngoài các quyền cho Owner, Group, Other thì còn có các quyền đặc biệt. Các quyền đặc biệt này bap gồm: SUID (Set User ID), SGID (Set Group ID), Sticky bit.
SUID | SGID | Sticky | Owner | Owner | Owner | Group | Group | Group | Other | Other | Other |
- SUID (Set User ID)
- SGID (Set Group ID)
- Sticky bit
Quyền | Cấu hình theo ký tự | Cấu hình thep số |
SUID | chmod +s [tên file] | chmod 4XXX [tên file] |
SGID | chmod +g [tên file] | chmod 2XXX [tên file] |
Sticky bit | chmod +t [tên file] | chmod 1XXX [tên file] |
Attachments
Last edited: