Qual é a diferença entre a permissão especial e a permissão de execução?

1

Sou novo no unix, tentei encontrar a diferença entre permissões de permissão de execução e permissões especiais. Por exemplo, o comando "su" tem as permissões

-rws-r-xr-x

Sob essas permissões, um usuário pode executar esse comando como raiz.

eu mudei para

-rwx-r-xr-x 

usando o comando chmod, sob essas permissões também eu posso executar o comando. qual é a diferença entre essas duas permissões,.

    
por BoBBY 30.01.2013 / 10:22

1 resposta

3

Os dois não são mutuamente exclusivos. A letra s aqui significa "é executável e tem o bit 'setuid'". (Se o arquivo tivesse apenas 'setuid', mas não fosse executável, você veria um S de letra maiúscula.)

O bit 'setuid' é usado, como você observou, para permitir que os usuários executem o comando como root (mais precisamente, como o proprietário do comando, mas root é o mais comum). Geralmente é definido nos programas que precisam acessar as funções somente raiz.

Nesse caso, /bin/su precisa de acesso root para alternar as contas de usuário . Se você remover o bit 'setuid', ainda poderá executar o programa, mas não funcionará como esperado, já que 1) não pode verificar a senha do outro usuário para que você sempre receba "Falha de autenticação", 2) não possa alternar para a conta do outro usuário, então ninguém pode usar su root mais.

    
por 30.01.2013 / 14:45