Quando instalo um programa, ele recomenda chmod 4555
. Ok, eu sei sobre valores se eu apenas usar três números. Por exemplo
chmod 555 test-file
darei
-r-xr-xr-x
4 para gravação, 2 para leitura e 1 para execução. Mas quando eu faço isso:
chmod 4555 test-file
isso me dá
-r-sr-xr-x
Então, x
mudou para s
. O que isso significa?
command-line
chmod
Mas Bagol
fonte
fonte
Respostas:
Na verdade, existem 4 conjuntos de atributos com os quais você pode trabalhar via
chmod
.Special
,User/Owner
,Group
, EOthers
em que ordem, quando se trabalha com os chmods quatro numéricas, com que o primeiro número sendo os bits especiais que podem ser definidas.chmod 4555
equivale ao seguinte:Set UID
bit - Execute o arquivo como proprietário, independentemente de qual usuário o esteja executando.Read, Execute
Read, Execute
Read, Execute
A
s
seqüência de caracteres 'readable human' 'para permissões indica que oSetUID
bit (explicado abaixo) está definido.Efetivamente, podemos decompor o
chmod
argumento de permissões de quatro números em descritores específicos, como a seguir, e fazer as contas para determinar o que4
seria na primeira seção,5
na próxima seção e assim por diante.Lembre-se de que
####
éSpecial
User/Owner
Group
eOthers
nessa ordem.Para
Special
atributos (o primeiro número em umchmod
argumento de quatro números ):Set UID
- Execute o arquivo como proprietário, independentemente do usuário que o esteja executando (mostra comos
na sequência de permissões legíveis por humanos daUser
seção) = +4 (--s
abaixoUser/Owner
)Set GID
- Execute o arquivo como grupo, independentemente do usuário / grupo que o executa (mostra comos
na sequência de permissões legíveis por humanos daGroup
seção) = +2 (--s
abaixoGroup
)Sticky Bit
- EFETIVO APENAS PARA DIRETÓRIOS - Se definido, apenas o usuário proprietário do diretórioroot
poderá excluir o diretório e apenas o proprietário do arquivo ouroot
excluir arquivos dentro dele. (mostra comot
na sequência de permissões legíveis por humanos daOthers
seção) = +1 (--t
abaixoOthers
)Para
User/Owner
,Group
eOthers
atributos (os últimos três números em umchmod
argumento de quatro números ):Read
= +4 (r--
)Write
= +2 (-w-
)Execute
(para arquivos) ou 'Entrar / listar itens' (para diretórios) = +1 (--x
)fonte
Isso é chamado de
SETUID
bit. se for definido porchmod 4555 test-file
(no seu caso),test-file
poderá ser executado por qualquer usuário como se o usuário fosse o proprietário do arquivo.Quando o
SETUID
bit é definido, o ID do usuário efetivo (EUID
) do usuário que não tem permissão para executar o arquivo de outra forma (por permissões normais, por exemplo0744
), pega o EUID do proprietário do arquivo e pode executá-lo.fonte