Я новичок в системе Linux, и когда я выучил команды, я научился изучать права доступа и владельцев. Я понял все команды, но не понял специального разрешения. Я имею в виду chmod u+s
, chmod g+s
и chmod u+t
. Может кто-нибудь объяснить это для меня?
2 ответа
S-бит или sticky-бит позволяет влиять на выполнение исполняемых файлов или на то, как обрабатываются каталоги. Для того, как это работает, setuid также очень важен.
Обычное использование:
Чаще всего этот бит закреплен в каталогах, находящихся в файловых системах для Unix-подобных операционных систем. Когда установлен липкий бит каталога, файловая система обрабатывает файлы в таких каталогах особым образом, так что только владелец файла, владелец каталога или корень может переименовать или удалить файл.
Так же как:
setuid и setgid (сокращение от "установить идентификатор пользователя при выполнении" и "установить идентификатор группы при выполнении" соответственно) - это флаги прав доступа Unix, которые позволяют пользователям запускать исполняемый файл с разрешениями владельца или группы исполняемого файла соответственно и изменять поведение в каталогах.
Таким образом, вы можете использовать его для "защиты" каталога или позволить пользователю запускать программу, которая требует повышенных привилегий, без явного предоставления их пользователю. Например, у вас может быть скрипт, которым владеет root, с установленным битом закрепления, и если вы выполните его, он будет выполнен так, как если бы вы были пользователем root.
Если вы посмотрите на страницу руководства, вы увидите, что s обозначает бит setuid/gid, а t обозначает бит удаления.
установить идентификатор пользователя или группы при выполнении (ях), флаг ограниченного удаления или фиксированный бит (t)
Смотрите также:
chmod u+s chmod g+s chmod u+t
Оператор + добавляет режим в класс. Например:
chmod u+s
Добавляет s-режим (setuid) к классу u (владельцу файла).
Статья в Википедии объясняет это довольно хорошо:https://en.wikipedia.org/wiki/Chmod
Также см:
info chmod
man chmod