Các bit dính là hữu ích trên các thư mục có thể ghi trên thế giới, chẳng hạn như /tmp
. Trong các thư mục này, bất kỳ ai cũng có thể tạo một tệp, vì vậy thư mục cần có thể ghi trên thế giới. Nhưng điều đó có nghĩa là bất cứ ai cũng có thể xóa một tập tin, ngay cả khi nó không thuộc về họ, vì việc xóa một tập tin được kiểm soát bởi quyền ghi trên thư mục. Khi một thư mục có bit dính, chỉ chủ sở hữu của một tệp có quyền xóa nó.
Trong một thư mục có quyền rwx------
hoặc rwxr-xr-x
, chỉ chủ sở hữu của thư mục có thể tạo hoặc xóa một tệp. Nếu có bất kỳ tệp nào thuộc về một người dùng khác (được chuyển đến bởi root hoặc được tạo khi thư mục có nhiều quyền mở hơn), thì đó vẫn là chủ sở hữu của thư mục có quyền xóa chúng chứ không phải chủ sở hữu của tệp.
Trong một thư mục có quyền rwxrwx---
, tất cả các thành viên của nhóm có thể tạo và xóa các tệp. Bất kỳ thành viên nào trong nhóm cũng có thể xóa bất kỳ tệp nào ngay cả khi nó thuộc về một người dùng khác. Nếu các quyền rwxrwx--T
thay thế (vốn T
là như thế t
, nhưng t
có nghĩa là x
bit được đặt và T
có nghĩa là x
bit rõ ràng), thì bất kỳ thành viên nào trong nhóm cũng có thể tạo tệp và các thành viên của nhóm có thể xóa tệp nhưng chỉ các tệp của riêng họ .
Bạn có thể sử dụng lệnh sau để xem thư mục nào có bit dính trên hệ thống của bạn:
find / /run /run/lock /run/shm -xdev -path /usr -prune -o -perm -o+t -ls 2>/dev/null
Bạn sẽ tìm thấy một số thư mục /tmp
mở cho tất cả mọi người và một số thư mục /var/spool/cron/crontabs
được dành riêng cho một chương trình hệ thống chạy dưới dạng nhóm riêng của nó ( setgid ), trong đó bit dính đảm bảo rằng chương trình chỉ có thể xóa các tệp thay mặt cho Người dùng sở hữu chúng (điều đảm bảo rằng chương trình chỉ có thể tạo tệp thay cho người dùng sở hữu chúng là chương trình đang chạy với tư cách người dùng đó, không phải là root, vì vậy không thể tạo tệp thuộc về người dùng khác).