Como eu limpo a permissão “s” em um diretório no Linux?

16

Eu tenho um diretório que está aparecendo com a máscara de permissão drwsrwsr-x . Quando tento redefinir as permissões para 755 , o S ainda permanece.

O que é o "s" e por que não posso alterar as permissões de volta para 775 ( drwxrwxr-x )?

    
por Matt Elhotiby 23.02.2011 / 02:30

3 respostas

18

Os s que você está vendo na posição "executar" na coluna de usuários e grupos são os bits SetUID (Definir ID do Usuário na Execução) e SetGID (Definir ID do Grupo na execução).

As permissões do arquivo Unix são na verdade um número octal de 4 dígitos SUGO

  • S controla os bits SetUID (4), SetGID (2) e "Sticky" (1)
  • U controla os bits de leitura (4) / gravação (2) / execução (1) para o proprietário do arquivo
  • G controla os bits de leitura / gravação / execução para o grupo do arquivo
  • O controla os bits de leitura / gravação / execução para todos os outros.

Você pode remover os bits setuid de seu diretório com chmod ug-s directory ou chmod 0755 directory

Para mais informações, consulte a man page de chmod e esta página da Wikipedia sobre o bit SetUID .

    
por 23.02.2011 / 02:33
17

setuid e setgid

setuid and setgid (short for set user ID upon execution and set group ID upon execution, respectively) are Unix access rights flags that allow users to run an executable with the permissions of the executable's owner or group. They are often used to allow users on a computer system to run programs with temporarily elevated privileges in order to perform a specific task. While the assumed user id or group id privileges provided are not always elevated, at a minimum they are specific.

Para remover os bits setuid e setgid numericamente, você deve prefixar o padrão de bits com um 0 (por exemplo, 0775 se torna 00775 ).

Executar para excluir setuid e setgid:

chmod 00775 path

ou

chmod a-st path
    
por 23.02.2011 / 02:33
1

Adicionando a resposta do ooshro ...

Se você usar permissões suid ou sgid em um diretório, todos os arquivos criados dentro desse diretório terão o mesmo proprietário (se suid) ou group (sgid) como o diretório em questão.

Eu uso isso para minha parte de samba em casa. O diretório base é de propriedade do usuário nobody e group olympia, e as permissões são 2770. Então você tem que estar no grupo olympia para ler ou escrever qualquer coisa abaixo desse diretório, e ele vai ter certeza que olympia é o grupo proprietário de tudo abaixo dele . Eu também tenho o Samba configurado para usar um dirmask de 2770 e uma máscara de arquivo de 660 para manter as permissões corretas até o final da árvore.

    
por 01.03.2011 / 15:42