Я попал в добродушную ссору с коллегой по работе о природе залипшего кусочка.
По моему утверждению, работа со справочной страницей chmod
заключалась в том, что бит закрепления, если он установлен, позволяет только владельцу удалять или переименовывать файлы:
RESTRICTED DELETION FLAG OR STICKY BIT
The restricted deletion flag or sticky bit is a single bit, whose
interpretation depends on the file type. For directories, it prevents
unprivileged users from removing or renaming a file in the directory
unless they own the file or the directory; this is called the restricted
deletion flag for the directory, and is commonly found on world-writable
directories like /tmp. For regular files on some older systems, the
bit saves the program's text image on the swap device so it will load more
quickly when run; this is called the sticky bit.
(см. Также: https : //en.wikipedia.org/wiki/Sticky_bit )
Мой коллега непреклонен в том, что авторитетным ответом является статья на Йельском форуме 1996 года , в которой указывается, как липкий бит используется для установки унаследованных прав группы для каталога.
Соответственно, я установил setafcl
и установил acl
в качестве опции при монтировании (, как подробно описано в Super User ).
Кто-нибудь хотел бы помочь урегулировать этот спор?
Вы и ваш коллега говорите о двух разных вещах, поэтому понятно, что вы не согласны с тем, что они делают.
Липкий бит, бит setuid и бит setgid - это три разных бита в режиме файла (или каталога). Смотрите, например справочная страница chmod(2)
.
Вы оба правы, ваша ссылка на бит закрепления верна, ваши коллеги также ссылаются на бит SGID.
Бит setgid - это то, что вам нужно.
sudo chmod g+s /foldername
Не используйте опцию -R для рекурсии, если только вы не хотите, чтобы существующие файлы в этом каталоге / подкаталогах также устанавливали бит. Обычно вы не хотите, чтобы для файлов был установлен бит setgid.
Ниже описано, как рекурсивно установить бит gid для папки и ее подпапок.
sudo find /foldername -type d -exec echo chmod g+s {} \;