Зачем использовать липкий бит?

18

«Фиксированный бит применяется только к каталогам и обычно используется в общедоступных каталогах. В каталоге, к которому применяется этот бит, пользователям запрещается удалять или переименовывать любые файлы, которые они лично не имеют».

Означает ли это, если я запускаю следующее:

// only allow other users to read files in /directory
sudo chmod o-w -R /directory
sudo chmod o-x -R /directory
sudo chmod o+r -R /directory

пользователи по-прежнему могут удалять или переименовывать любые файлы, которые им не принадлежат?

JohnMerlino
источник

Ответы:

22

Заклепка полезна для каталогов, которые доступны для записи всем, например /tmp. В этих каталогах любой может создать файл, поэтому каталог должен быть доступен для записи всем пользователям. Но это означает, что любой может удалить файл, даже если он ему не принадлежит, так как удаление файла контролируется разрешением на запись в каталог. Когда каталог имеет залипший бит, только владелец файла имеет право удалить его.

В каталоге с разрешениями rwx------или rwxr-xr-x, только владелец каталога может создать или удалить файл. Если есть какие-либо файлы, принадлежащие другому пользователю (перемещенные туда пользователем root или созданные, когда у каталога было больше открытых разрешений), владелец каталога по-прежнему имеет права на их удаление, а не владелец файла.

В каталоге с разрешениями rwxrwx---все члены группы могут создавать и удалять файлы. Любой участник группы может удалить любой файл, даже если он принадлежит другому пользователю. Если разрешения rwxrwx--Tвместо этого (капитал Tпохож t, но tозначает, чтоx бит установлен и Tозначает, что xбит очищен), тогда любой член группы может создать файл, и члены группы могут удалять файлы, но только свои собственные файлы. ,

Вы можете использовать следующую команду, чтобы увидеть, какие каталоги имеют залипание в вашей системе:

find / /run /run/lock /run/shm -xdev -path /usr -prune -o -perm -o+t -ls 2>/dev/null

Вы найдете несколько таких каталогов, /tmpкоторые открыты для всех, и некоторые директории, подобные тем, /var/spool/cron/crontabsкоторые зарезервированы для системной программы, которая запускается как ее собственная группа ( setgid ), где бит закрепления гарантирует, что программа может удалять файлы только от имени пользователя. Пользователь, которому они принадлежат (что гарантирует, что программа может создавать файлы только от имени пользователя, которому они принадлежат, заключается в том, что программа работает от имени этого пользователя, а не от имени пользователя root, поэтому не может создавать файлы, принадлежащие другим пользователям).

Жиль "ТАК - прекрати быть злым"
источник