Qual é o resultado da execução de 'chmod 7' em um arquivo?

5

Eu sei que chmod 777 permite ler , escrever e executar para usuário , grupo e outros

mas e se eu fizer apenas chmod 7 ?

Isso é apenas rwx para o usuário ?

    
por user2510809 17.10.2014 / 05:26

2 respostas

19

É o contrário. Isso dará rwx permissão para outros .

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

Da página man de chmod ,

numeric mode is from one to four octal digits (0-7), derived by adding up the bits with values 4, 2, and 1. Omitted digits are assumed to be leading zeros.

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 em um arquivo, será concedida a permissão read para grupo e leitura , gravação e executar permissão para outros .

    
por 17.10.2014 / 05:31
19

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.

    
por 17.10.2014 / 07:14

Tags