permissões de arquivo unix

3

Permissões de arquivo no UNIX são freqüentemente especificadas como octal número. Por que a octal é a base preferida para esse propósito?

    
por Phenom 31.01.2010 / 06:52

2 respostas

13

Porque as permissões são armazenadas em um campo de bits, agrupadas em trechos de 3 bits (por exemplo, rwx ).

O octal é uma maneira natural de descrevê-los porque você só precisa de um dígito octal para representar exatamente qualquer sequência de 3 dígitos binários. (Isto é similar a porque o hexadecimal é usado na programação - como 1 dígito hexadecimal pode representar 4 dígitos binários, você só precisa de 2 dígitos hexadecimais para descrever 1 byte. Tudo se resume ao fato de que 8 e 16 são potências de 2, então converter entre octal e binário ou hexadecimal e binário é realmente fácil.)

Essas partes são usuário (também conhecido como proprietário), grupo e outras . Cada parte tem três permissões para descrever: ler , escrever e executar .

Assim, o conjunto completo de permissões é parecido com rwxrwxrwx , em que cada um é um dígito binário. Então, por exemplo, 110100100 em binário torna-se 644 em octal, e você sabe que o primeiro dígito octal é para as permissões proprietário , o segundo para as permissões do grupo e a terceira para todos os outros .

    
por 31.01.2010 / 07:02
5

Existem três classes diferentes especificadas por permissões em um objeto: proprietário, grupo e todos os outros. Cada uma dessas classes tem três permissões independentes que podem ser definidas: ler, gravar e executar. Isso significa que cada classe tem um dos oito conjuntos de permissões:

  1. Executar
  2. Escrever
  3. Escrever / executar
  4. ler
  5. Ler / executar
  6. Ler / escrever
  7. Ler / gravar / executar
  8. Sem permissões

Como um dígito octal aceita um de oito valores diferentes (os números de 0 a 7), você pode representar qualquer combinação de leitura / gravação / execução com um único dígito octal.

Internamente, o computador armazena as permissões como um campo de bits. Portanto, por exemplo, se você definir permissões para 644, o computador pode representar isso como o número binário 110100100 ou:

 110  |  100  |  100
 rw-  |  r--  |  r--
  6   |   4   |   4
Owner | Group | World

(Observe que o binário 110 é igual a octal 6 e o binário 100 é igual a octal 4).

    
por 31.01.2010 / 07:12