Инструменты пользователя

Инструменты сайта


linux_suid_guid_stickybit

Что такое StickyBit, SUID и SGID и как они работают?

StickyBit, SUID и SGID это специальные разрешения, которые работают с файлами и каталогами.

StickyBit

stickybit - работает только для каталогов.

Если пользователь хочет создать или удалить файл или каталог в каком-либо каталоге, ему нужно разрешение на запись в этот каталог. Разрешение на запись в каталог дает пользователю право создавать файл, а также право удалять его.

Например, каталог /tmp – это каталог для временных файлов.
Этот каталог обладает всеми правами на всех трех уровнях (rwx), поскольку все пользователи должны создавать/удалять свои временные файлы. Но так как пользователи имеют разрешение на запись в этот каталог, они могут удалить любой файл в этом каталоге. Но с установленным в каталоге stickybit любой может создать в нем файл или каталог, но может удалить только свои собственные файлы или каталоги.

Файлы, принадлежащие другим пользователям, не могут быть удалены.

stickybit может быть установлен командой chmod.

Вы можете использовать тег +t, чтобы добавить, и тег -t, чтобы удалить бит.

Или по другому: chmod 1777 <имя_каталога>
stickybit имеет значение 1

Примечание. В ОС Unix и OS Solaris stickybit имеет другое назначение.

SUID

SUID бит работает только с файлами, хотя может быть установлен и на каталог.

В нормальном виде, когда исполняемый файл запускается, он запускается под управлением пользователя, который его выполнил. Это означает, что когда пользователь student запускает команду ls, соответствующий процесс будет выполняться под управлением пользователя student.

Бит SUID, также известный как бит установки идентификатора пользователя, перезаписывает это поведение. Если в программе установлен бит SUID, то эта программа будет работать как владелец этого файла, независимо от того, кто его выполняет.

SUID может быть установлен командой chmod.
chmod u+s <имя_файла>

Или по другому, если обычные разрешения для файла равны 744, то с установленным битом SUID они станут 4744.
chmod 4744 <имя_файла>
Бит SUID имеет значение 4.

SGID

В отличие от бита SUID, бит SGID работает как с файлами, так и с каталогами, но в обоих случаях он имеет различное значение.

По файлам:

Для файла он имеет значение, аналогичное значению бита SUID, то есть когда любой пользователь выполняет файл с установленным битом SGID, он всегда будет выполняться с владельцем группы этого файла, независимо от того, кто его запускает.

По каталогам:

После установки бита SGID на каталог все файлы и каталоги, создаваемые в этом каталоге, будут принадлежать той же группе что и каталог с установленным SGID.

Более того, это поведение является рекурсивным, то есть в каталогах, созданных в этом каталоге, также будет установлен бит SGID.

Бит SGID может быть установлен командой chmod следующим образом:
chmod g+s имя_файла|имя_каталога>

Числовое значение, соответствующее биту SGID, равно 2. Поэтому, чтобы численно добавить бит SGID, используйте следующую команду:
chmod 2775 <имя_файла|имя_каталога>

linux_suid_guid_stickybit.txt · Последнее изменение: 2022/08/08 19:12 — admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki