Qual é o resultado da execução do `chmod 7` em um arquivo?

Qual é o resultado da execução do `chmod 7` em um arquivo?

eu sei chmod 777permiteler,escrever, eexecutarparado utilizador,grupo, eoutros

mas e se eu simplesmente fizer chmod 7?

Isso é apenas rwxparado 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 755e 777possam 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 493em 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 755que é octal, você realmente deveria se referir a ele como 0755. O chmodcomando 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á rwxpermissã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 47um arquivo darálerpermissão paragrupoeler,escrevereexecutarpermissão paraoutros.

informação relacionada