
eu sei chmod 777
permiteler,escrever, eexecutarparado utilizador,grupo, eoutros
mas e se eu simplesmente fizer chmod 7
?
Isso é apenas rwx
parado utilizador?
Responder1
A resposta de Ramesh é perfeitamente precisa, mas eu queria intervir e fornecer uma explicação mais detalhada dos modos de arquivo.
Embora números como 755
e 777
possam parecer especiais e significar algo apenas para modos de arquivo, eles são bastante básicos.
Esses números são na verdade números octais. Os números decimais são de base 10, os números hexadecimais são de base 16, os binários são de base 2 e os números octais são de base 8. O que significa que conforme você conta, você vai 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 ...
. Portanto 007
, o número é apenas octal 7
. O número octal 755
é apenas um número e é equivalente 493
em decimal.
Agora, como você diferencia um número octal de qualquer outra base é que os números octais são prefixados com a 0
. Então, para dizer 755
que é octal, você realmente deveria se referir a ele como 0755
. O chmod
comando apenas assume que todos os números de entrada são octais, pois essa é a forma mais comum de se referir aos modos de arquivo.
Agora, por que os modos de arquivo usam octal? Bem, primeiro precisamos entender que o modo é apenas uma máscara de bits parecida com esta:
111111111111 - 12 binary bits
============
1 - Other execute
1 - Other write
1 - Other read
1 - Group execute
1 - Group write
1 - Group read
1 - User execute
1 - User write
1 - User read
1 - Sticky bit
1 - Set group ID
1 - Set user ID
Observe que existem 3 bits para cada "outro", "grupo" e "usuário". Binário 111
é 7
, que é o valor octal de um único dígito mais alto. Portanto, usando numeração octal, cada uma das outras permissões de grupo e usuário obtém um único dígito, mais um dígito extra para sticky+setuid+setgid.
Então, com isso, podemos voltar à sua pergunta original de “o que é chmod 7
”?
Bem, agora que sabemos que é apenas um número octal e apenas uma máscara de bits, podemos descobrir isso. Octal 7
é binário 111
. Usando as posições de bits acima, podemos determinar que isso define todos os 3 'outros' bits, concedendo aos 'outros' acesso de execução, leitura e gravação. E como este é apenas um número, todos os outros bits são 0 e ficam indefinidos.
Responder2
É o contrário. Dará rwx
permissão paraoutros.
touch samplefile
ls -l samplefile
-rw-rw-r-- 1 ramesh ramesh 0 Oct 16 22:29 samplefile
Agora, depois de executar o comando, recebo a saída como,
chmod 7 samplefile
ls -l samplefile
-------rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile
Na página de manual de chmod
,
o modo numérico é de um a quatro dígitos octais (0-7), derivados da soma dos bits com valores 4, 2 e 1. Os dígitos omitidos são considerados zeros à esquerda.
Agora, podemos verificar o mesmo executando o comando como,
chmod 47 samplefile
ls -l samplefile
----r--rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile
Como podemos ver, com chmod 47
um arquivo darálerpermissão paragrupoeler,escrevereexecutarpermissão paraoutros.