Đây có lẽ là một trong những điều khó chịu nhất của tôi mà mọi người rối tung mọi lúc. Bit SUID / GUID và bit dính là 2 thứ hoàn toàn khác nhau.
Nếu bạn làm một man chmod
bạn có thể đọc về SUID và các bit dính. Các trang người đàn ông có sẵn ở đây là tốt.
lý lịch
đoạn trích
Các chữ cái rwxXst chọn bit chế độ tệp cho người dùng bị ảnh hưởng: read (r), write (w), thực thi (hoặc tìm kiếm thư mục) (x), chỉ thực hiện / tìm kiếm nếu tệp là thư mục hoặc đã có quyền thực thi đối với một số người dùng (X), đặt ID người dùng hoặc nhóm trên thực thi , cờ xóa bị hạn chế hoặc
bit dính (t) .
BỀN / HƯỚNG DẪN
Điều mà trang man trên đang cố gắng nói là vị trí mà bit x đảm nhận trong rwxrwxrwx cho bát phân người dùng (nhóm thứ nhất của rwx) và bát phân nhóm (nhóm thứ 2 của rwx) có thể có trạng thái bổ sung trong đó x trở thành một s. Khi điều này xảy ra tệp này khi được thực thi (nếu đó là chương trình chứ không chỉ là tập lệnh shell) sẽ chạy với sự cho phép của chủ sở hữu hoặc nhóm của tệp.
Vì vậy, nếu tệp được sở hữu bởi root và bit SUID được bật, chương trình sẽ chạy dưới dạng root. Ngay cả khi bạn thực hiện nó như một người dùng thông thường. Điều tương tự áp dụng cho bit GUID.
đoạn trích
CÀI ĐẶT VÀ CÀI ĐẶT
chmod xóa bit ID nhóm nhóm của một tệp thông thường nếu ID nhóm của tệp không khớp với ID nhóm hiệu quả của người dùng hoặc một trong các ID nhóm bổ sung của người dùng, trừ khi người dùng có các đặc quyền phù hợp. Các hạn chế bổ sung có thể làm cho các bit ID người dùng và ID nhóm nhóm của MODE hoặc RFILE bị bỏ qua. Hành vi này phụ thuộc vào chính sách và chức năng của lệnh gọi hệ thống chmod cơ bản. Khi nghi ngờ, hãy kiểm tra hành vi hệ thống cơ bản.
chmod bảo tồn các bit set-user-ID và set-ID-set của thư mục trừ khi bạn xác định rõ ràng bằng cách khác. Bạn có thể đặt hoặc xóa các bit bằng các chế độ tượng trưng như u + s và gs và bạn có thể đặt (nhưng không xóa) các bit bằng chế độ số.
Ví dụ SUID / GUID
không có suid / guide - chỉ các bit rwxr-xr-x được đặt.
$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan 9 01:01 b.pl
bit thực thi của người dùng và người dùng được bật (chữ thường) - các bit rwsr-xrx được đặt.
$ chmod u+s b.pl
$ ls -lt b.pl
-rwsr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid được kích hoạt & bit thực thi bị vô hiệu hóa (chữ hoa S) - các bit rwSr-xr-x được đặt.
$ chmod u-x b.pl
$ ls -lt b.pl
-rwSr-xr-x 1 root root 179 Jan 9 01:01 b.pl
bit thực thi của hướng dẫn & nhóm được bật (chữ thường) - các bit rwxr-sr-x được đặt.
$ chmod g+s b.pl
$ ls -lt b.pl
-rwxr-sr-x 1 root root 179 Jan 9 01:01 b.pl
hướng dẫn kích hoạt & bit thực thi bị vô hiệu hóa (chữ hoa S) - các bit rwxr-Sr-x được đặt.
$ chmod g-x b.pl
$ ls -lt b.pl
-rwxr-Sr-x 1 root root 179 Jan 9 01:01 b.pl
dính chút
Mặt khác, bit dính được ký hiệu là t
, chẳng hạn như với /tmp
thư mục:
$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp
Bit này phải luôn được gọi là "bit xóa bị hạn chế" được cho là những gì nó thực sự có nghĩa. Khi bit chế độ này được bật, nó tạo một thư mục sao cho người dùng chỉ có thể xóa các tệp & thư mục trong đó mà họ là chủ sở hữu.
đoạn trích
FLAG GIỚI HẠN HẠN CHẾ HOẶC BIT STICKY
Cờ xóa bị hạn chế hoặc bit dính là một bit đơn, việc giải thích phụ thuộc vào loại tệp. Đối với các thư mục, nó
ngăn người dùng không có đặc quyền xóa hoặc đổi tên tệp trong thư mục trừ khi họ sở hữu tệp hoặc thư mục; đây được gọi là cờ xóa bị hạn chế cho thư mục và thường được tìm thấy trên các thư mục có thể ghi trên thế giới như / tmp. Đối với các tệp thông thường trên một số hệ thống cũ, bit sẽ lưu hình ảnh văn bản của chương trình trên thiết bị trao đổi để nó sẽ tải nhanh hơn khi chạy; đây được gọi là bit dính.