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

StackOverflow https://stackoverflow.com/questions/627880

Вопрос

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

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

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

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

Это было полезно?

Решение

В качестве продолжения ответа 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 также требует включения специального флага монтирования и изменит поведение файлов в этом каталоге.

Другие советы

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

  

В большинстве систем, если установлен бит 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 каталога, если пользователь специально не упоминает их в символьном режиме или не устанавливает их в числовом режиме.

При установке в каталоге все файлы и каталоги, созданные в этом каталоге, будут иметь того же владельца, что и сам 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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top