Será que qualquer sistema Unix-like atribuem significado para o bit SUID em um diretório?

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

Pergunta

Como o título diz, faz qualquer Unix-like atribuem sistema de um significado para o bit SUID em um diretório , e em caso afirmativo, o que significa isso?

O SVTX (texto gravada, ou pegajosa) bit tem um significado - Tu não excluir um arquivo a partir deste diretório a menos que você pode escrever para o arquivo. Ela é usada em / tmp, por exemplo.

A SGID (set GID) bit tem um significado - arquivos criados neste diretório deve pertencer ao grupo que detém o diretório (embora essa tarefa pode ser posteriormente alterado por uma chamada explícita para chown (2))

E o bit SUID?

Foi útil?

Solução

Como uma continuação da resposta do Nó, vou postar o seguinte a partir da página man FreeBSD para 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.

E o chmod (2) seção da página homem que se refere ao bit 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).

Por favor, esteja ciente de que este é um risco de segurança e saber o que você está fazendo quando você ativá-lo, em FreeBSD mas acredito Linux também exige montagem especial bandeira para ser ativado e mudará a forma como arquivos em que se comportam diretório.

Outras dicas

aqui :

Na maioria dos sistemas, se bit set-group-ID do diretório está definido, subfiles recém-criados herdam o mesmo grupo do diretório e subdiretórios recém-criados herdam o bit set-group-ID do diretório pai. Em alguns sistemas, bit set-user-ID de um diretório tem um efeito similar sobre a propriedade de novos subarquivos e os bits set-user-ID de novos subdiretórios. Estes mecanismos permitem que os usuários compartilhem arquivos mais facilmente, diminuindo a necessidade de usar chmod ou chown para compartilhar arquivos novos.

Estes mecanismos de conveniência contar com os set-user-ID e set-group-ID pedaços de diretórios. Se comandos como chmod e mkdir rotineiramente apuradas esses bits em diretórios, os mecanismos seria menos conveniente e seria mais difícil de compartilhar arquivos. Portanto, um comando como chmod não afeta os set-user-ID ou set-group-ID pedaços de um diretório a menos que o usuário especificamente menciona-los em um modo simbólico, ou conjuntos-los em um modo numérico.

Quando definido em um diretório, todos os arquivos e diretórios criados dentro deste diretório terá o mesmo proprietário como o SUID-diretório em si, não importa quem criou o arquivo. Esta é uma característica que não é usado com muita freqüência, mas pode ser útil em alguns casos. ( fonte )

Update:. Eu apenas tentei isso no 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

Ele não teve nenhum efeito.

Os SUID bit afirma que, na execução de um arquivo (quando executável), o processo será executado sob a identidade do proprietário do referido arquivo, não o usuário que executou-lo.

Existem alguns casos em que um programa utilitário é 'root suid' para permitir a elevação de privilégios.

EDIT: Misread pergunta original (que se refere aos diretórios em vez de arquivos) - deixando resposta inalterado para fins educacionais ;-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top