A resposta de Ramesh é perfeitamente precisa, mas eu queria entrar em contato e fornecer uma explicação mais detalhada dos modos de arquivo.
Embora números como 755
e 777
possam parecer especiais e signifiquem apenas algo para os modos de arquivo, eles são realmente 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, o binário é de base-2 e os números octais são de base-8. Significa que, como você conta, você vai 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 ...
. Portanto, o número 007
é apenas octal 7
. O número octal 755
é apenas um número e equivale a 493
em decimal.
Agora, como você diferencia um número octal de qualquer outra base, os números octal são prefixados com 0
. Então, para dizer que 755
é octal, você deve se referir a ele como 0755
. O comando chmod
apenas assume que todos os números de entrada são octal, já que essa é a maneira 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 um bitmask que se parece com isso:
111111111111 - 12 binary bits
============
1 - Other execute
1 - Other write
1 - Other read
1 - Group execute
1 - Group write
1 - Group read
1 - Owner execute
1 - Owner write
1 - Owner read
1 - Sticky bit
1 - Set group ID
1 - Set user ID
Observe que há 3 bits para cada um dos outros grupos e & proprietário. Binário 111
é 7
, que é o maior valor octal de dígito único. Então, usando a numeração octal, cada um dos outros, grupo, & as permissões do proprietário recebem um único dígito.
Então, com isso, podemos voltar à sua pergunta original "o que é chmod 7
"?
Bem, agora que sabemos que é apenas um número octal, e isso é apenas um pouco de máscara, podemos descobrir isso. Octal 7
é binário 111
. Usando as posições de bit acima, podemos determinar que isso define todos os 3 bits 'outros', concedendo 'outro' executar, ler, & acesso de gravação.