Приписывает ли какая-либо Unix-подобная система значение биту SUID в каталоге? - PullRequest
3 голосов
/ 09 марта 2009

Как видно из названия, любая Unix-подобная система приписывает значение биту SUID в каталоге , и если да, что это значит?

Бит SVTX (сохраненный текст или прикрепленный) имеет значение - вы не должны удалять файл из этого каталога, если вы не можете записать в файл. Используется на / tmp, например.

Бит SGID (set GID) имеет значение - файлы, созданные в этом каталоге, должны принадлежать группе, которой принадлежит каталог (хотя это назначение может быть позже изменено явным вызовом chown (2)).

А как насчет бита SUID?

Ответы [ 4 ]

6 голосов
/ 09 марта 2009

Как ответ на Node, я выложу на странице руководства FreeBSD для mount (8) следующее:

             suiddir
                 A directory on the mounted file system will respond to
                 the SUID bit being set, by setting the owner of any new
                 files to be the same as the owner of the directory.  New
                 directories will inherit the bit from their parents.
                 Execute bits are removed from the file, and it will not
                 be given to root.

                 This feature is designed for use on fileservers serving
                 PC users via ftp, SAMBA, or netatalk.  It provides secu-
                 rity holes for shell users and as such should not be used
                 on shell machines, especially on home directories.  This
                 option requires the SUIDDIR option in the kernel to work.
                 Only UFS file systems support this option.  See chmod(2)
                 for more information.

И раздел справочной страницы chmod (2), который ссылается на бит suid:

           4000    (the setuid bit).  Executable files with this bit set will
               run with effective uid set to the uid of the file owner.
               Directories with this bit set will force all files and sub-
               directories created in them to be owned by the directory
               owner and not by the uid of the creating process, if the
               underlying file system supports this feature: see chmod(2)
               and the suiddir option to mount(8).

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

4 голосов
/ 09 марта 2009

Скопировано с здесь :

В большинстве систем, если установлен бит set-group-ID каталога, вновь созданные подфайлы наследуют ту же группу, что и каталог, а вновь созданные подкаталоги наследуют бит set-group-ID родительского каталога. В некоторых системах бит set-user-ID каталога оказывает аналогичное влияние на владение новыми подфайлами и биты set-user-ID новых подкаталогов. Эти механизмы позволяют пользователям более легко обмениваться файлами, уменьшая необходимость использовать chmod или chown для обмена новыми файлами.

Эти вспомогательные механизмы основаны на битах каталогов set-user-ID и set-group-ID. Если бы такие команды, как chmod и mkdir регулярно очищали эти биты в каталогах, механизмы были бы менее удобными, и было бы сложнее обмениваться файлами. Поэтому такая команда, как chmod, не влияет на биты set-user-ID или set-group-ID каталога, если пользователь не упоминает их в символьном режиме или не устанавливает их в числовом режиме.

1 голос
/ 09 марта 2009

При установке в каталоге все файлы и каталоги, созданные в этом каталоге, будут иметь того же владельца, что и сам каталог SUID, независимо от того, кто создал файл. Эта функция используется не слишком часто, но в некоторых случаях может быть полезной. ( источник )

Обновление: я только что попробовал это в Linux 2.6.25.5-1.1-default # 1 SMP x86_64 GNU / Linux openSUSE 11.0 (X86-64).

mkdir tmp
chmod 4777 tmp
su othergroup
touch testfile

Это не имело никакого эффекта.

0 голосов
/ 09 марта 2009

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

Есть несколько случаев, когда служебная программа имеет 'suid root' для разрешения повышения привилегий.

РЕДАКТИРОВАТЬ: Неправильный исходный вопрос (который относится к каталогам, а не к файлам) - оставив ответ без изменений в образовательных целях ;-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...