Por que “chmod 1777” e “chmod 3777” definem o bit pegajoso?

12

Para definir o bit em um diretório, por que os comandos chmod 1777 e chmod 3777 funcionam?

    
por Liao Zhuodi 08.02.2013 / 04:23

2 respostas

22

Cada número (também referido como octal porque é base8) nesse agrupamento representa 3 bits. Se você transformá-lo em binário, fica muito mais fácil.

1 = 0 0 1 1
3 = 0 1 1
5 = 1 0 1
7 = 1 1 1

Portanto, se você fez 1777, 3777, 5777 ou 7777, definiria o bit pegajoso porque a terceira coluna seria um 1. No entanto, com 3777, 5777 e 7777, você também definia outros bits (SUID para o primeiro coluna e SGID para a segunda coluna).

Por outro lado, qualquer outro número naquele ponto (até o máximo de 7) não definiria o bit pegajoso porque a última coluna não seria 1 ou "on".

2 = 0 1 0
4 = 1 0 0
6 = 1 1 0

    
por 08.02.2013 / 14:54
15

As permissões aprovadas como argumento para chmod são especificadas como um valor octal . Cada numeral no valor representa três bits. Se três números forem dados, você está definindo os bits de leitura, gravação e execução para o proprietário do arquivo, grupo e outros (todos os outros). Se forem dados quatro números, o número mais à esquerda define os bits setuid, setgid e sticky. Octal 1 define o bit pegajoso. Octal 2 define o bit setgid. Octal 2 + octal 1 é octal 3, que define o bit setgid e o bit pegajoso.

    
por 08.02.2013 / 04:38