4. Quyền đặc biệt (Special Permissions)
Mode | Mô tả |
---|---|
Sticky bit | Được sử dụng cho các thư mục chia sẻ, mục đích là ngăn chặn việc người dùng này xóa file của người dùng kia. Chỉ duy nhất owner file (và root) mới có quyền rename hay xóa các file, thư mục khi nó đã được set sticky bit. sticky bit được môt tả bằng chữ cái “t” ở dòng cuối cùng của hiển thị permission. |
SUID | SUID hay Set user ID, được sử dụng trên các file thực thi (executable files) để cho phép việc thực thi được thực hiện dưới owner của file thay vì thực hiện như user đang loggin trong hệ thống.SUID cũng có thể được sử dụng để thay đổi ownership của files được tạo hoặc di chuyển nó đến một thư mục mà owner của nó sẽ là owner của thư mục chuyển đến thay vì là owner nó được tạo ra. |
SGID | SGID hay Set group ID, cũng tương tự như SUID, được sử dụng trên các file thực thi (executable files) để cho phép việc thực thi được thực hiện dưới owner group của file thay vì thực hiện như group đang loggin trong hệ thống.SGID cũng có thể được sử dụng để thay đổi ownership group của files được tạo hoặc di chuyển nó đến một thư mục mà owner group của nó sẽ là owner group của thư mục chuyển đến thay vì là group nó được tạo ra. |
a. SUID (Set User ID)
SUID (Set owner User ID up on execution): Người thực thi file sẽ được mượn quyền hạn của người sở hữu tại thời điểm thực thi.
# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 30768 Feb 22 2012 /usr/bin/passwd
rws: nghĩa là câu lệnh thay đổi mật khẩu passwd đã được thiết lập SUID bit. Tuy passwd thuộc root nhưng vì đã được thiết lập SUID bit nên người dùng khác cũng có thể thực hiện passwd (tất nhiên chỉ có thể thay đổi mật khẩu của chính user thực hiện passwd).
Ví dụ: liệt kê thư mục /root bằng tài khoản thường
Với user thường (test) khi ls /root sẽ không có quyền thực thi
Thiết lập SUID bit
[root@localhost ~]# chmod u+s /bin/ls
Huặc
[root@localhost ~]# chmod 4755 /bin/ls
Sau khi thiết lập SUID, thử lại liệt kê thư mục /root bằng user test
Khi có quyền thực thi
Khi không có quyền thực thi
b. SGID (Set Group ID)
SGID (Set Group ID) Bit: SGID bit rất hữu ích khi bạn phải trao quyền truy cập directory cho một nhóm các users trong 1 group. Khi SGID bit được kích hoạt trên 1 directory, toàn bộ file/directory cấp dưới được tạo bởi bất cứ người dùng nào đều có group permission giống với parent directory.
Ví dụ: tạo thư mục testSGID
Phân quyền
[root@localhost test]# chmod g+s testSGID
Hoặc
[root@localhost test]# chmod 2777 testSGID
Vào tài khoản thường tạo thư mục và kiểm tra.
Khi có quyền thực thi
Khi không có quyền thực thi
c. sticky bit
Sticky Bit is mainly used on folders in order to avoid deletion of a folder and it’s content by other users though they having write permissions on the folder contents. If Sticky bit is enabled on a folder, the folder contents are deleted by only owner who created them and the root user. No one else can delete other users data in this folder(Where sticky bit is set). This is a security measure to avoid deletion of critical folders and their content(sub-folders and files), though other users have full permissions.
Sticky Bit được sinh ra như một công cụ giúp giải quyết vấn đề chia sẻ file hay folder giữa các người dùng. Một khi sticky bit được kích hoạt, chỉ owner của file đó mới có thể remove hoặc rename file, bất chấp những người sử dụng khác có full permission trên file đó.
Ví dụ: tạo thư mục dữ liệu và phân quyền Sticky bit cho thư mục dữ liệu
Vào tài khoản b1, tạo 1 file trong thư mục dữ liệu và nhìn owner và group owner.
Đổi group owner thành b2
[root@localhost dulieu]# chgrp b2 b1
Vào tài khoản b2 xóa và đổi tên tập tin được tạo bởi b1
Khi có quyền thực thi
Khi không có quyền thực thi
Dưới đây, chúng ta có bảng tổng kết cách chmod SUID, SGID, Sticky Bit (Cả thư mục và file)
Permission | Symbolic Mode | Numberic Mode |
---|---|---|
sticky Bit | chmod +t file_name | chmod 1xxx file_name |
SUID Bit | chmod u+s file_name | chmod 4xxx file_name |
SGID Bit | chmod g+s file_name | chmod 2xxx file_name |
Tổng kết
Linux là một môi trường đa người dùng đồng thời, vì vậy, việc giới hạn quyền và chia sẻ tài nguyên là một việc hết sức cần thiết nhằm đảm bảo tính an toàn nhưng vẫn linh hoạt của hệ thống. SUID, SGID, Sticky bit sẽ giúp đảm bảo những điều nêu trên một cách rõ ràng và chặt chẽ hơn:
Tài liệu tham khảo: LPI 1, 2