LPI: Phân quyền trong linux (phần 2)

LPI: Phân quyền trong linux (phần 2)

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

6 min read

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.
linux12_898

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

linux12_892

Khi không có quyền thực thi

linux12_893

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

linux12_89

Vào tài khoản thường tạo thư mục và kiểm tra.

linux12_891

Khi có quyền thực thi

linux12_895

Khi không có quyền thực thi

linux12_894

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

linux12_8991

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.

linux12_8992

Đổ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

linux12_8993

Khi có quyền thực thi

linux12_896

Khi không có quyền thực thi

linux12_897

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

GO TOP

🎉 You've successfully subscribed to itplusX!
OK
]