O que o atributo 's' em permissões de arquivos significa? [duplicado]

40

Por favor, compare as duas linhas seguintes:

-rws---r-x 1 root root 21872 2009-10-13 21:06 prg1 

-rwx---r-x 1 root root 21872 2009-10-13 21:06 prg2 

O bit setuid em prg1 , junto com os bits de leitura e execução para 'outro' significa que qualquer usuário pode executá-lo com privilégios de root? O prg2 também leu e executou para 'outro', mas não tem o setuid bit set, então isso significa que ele ainda pode ser executado por qualquer usuário, mas sem privilégios de root?

    
por anders 09.03.2014 / 16:30

2 respostas

12

Precisamente o contrário, você não precisa usar sudo ou mudar para root, o executável faz isso por você.

    
por 09.03.2014 / 16:35
46

Esse é o bit "setuid", que informa ao sistema operacional para executar esse programa com o ID do usuário de seu proprietário. Isso é normalmente usado com arquivos de propriedade do root para permitir que usuários normais os executem como root sem ferramentas externas (como sudo ).

Você pode definir o bit suid usando chmod , por exemplo, chmod 4755 , o que dará um arquivo com as permissões normais 755 ( rwxr-xr-x ) e adicionará o bit suid para fornecer rwsr-xr-x

Você pode limpar o bit setuid emitindo um comando chmod normal com um 0 anexado a ele. Por exemplo, para definir permissões de volta para rwxr-xr-x você usaria chmod 0755 .

    
por 09.03.2014 / 16:47