Атрибуты SUID SGID
Теория
Наиболее распространенный вариант прав для выполняемого файла это
-rwxr-xr-xКак видим для владельца, группы и всех остальных установлено разрешение на исполнение данного файла
Атрибуты
- SUID - устанавливается в поле владельца
- SGID - устанавливается в поле группы
указывают на то, что кем бы он не запускался, файл будет исполнен от имени владельца и/или группы к которым принадлежит он сам.
Например
-rwsr-xr-x root developersФайл может исполнить сам владелец, пользователь из группы developers и любой другой пользователь.
При этом запущенный процесс будет иметь права пользователя root и принадлежать той группе, которая является основной для пользователь запустившего его.
С установленным атрибутом SGID
-rwsr-sr-x root developersгруппа будет всегда developers
Для скриптов такой фокус не проходит.
Cам скрипт (оболочка bash) выполняется от имени владельца, но права не распространяются на все запускаемые из него команды, утилиты, и т.п.
Установка атрибутов
Установить бит SUID
chmod u+s /usr/bin/whoami
Снять
chmod u-s /usr/bin/whoami
Установить бит SGID
chmod g+s /usr/bin/whoami
Снять
chmod g-s /usr/bin/whoami
Если нужно сделать что бы владелец и группа была root, то придется ставить разрешения на исполнение ВСЕМ.
Обсуждение