terça-feira, 7 de fevereiro de 2012

Cálculo de UMASK Observação IMPOTANTíSSIMA

ATENÇÃO, O INICIO DO TEXTO REPETE A EXPLICAÇÃO DA APOSTILA E DOS SLIDES, MAS CONTINUE LENDO.

O calculo de umask é:

 777 permissão total..
-755 subtraído da permissão desejada...
 ---
 022 valor da umask, que é a base para a definição automática de permissões em diretórios e arquivos.

Para arquivos o sistema faz automaticamente mais um calculo, que é a remoção do bit de execução.

No momento da criação o que ocorre?

Diretórios
 777
-022
 ---
 755 no momento da criação de arquivos
-111
 ---
 644

Até agora esta tudo igual as explicações da apostila.

Mas observe o seguinte; experimente fazer estes cálculos em uma calculadora. Com estes valores anteriores o resultado em uma calculadora são os mesmos, mas você pode passar pela seguinte situação:

Sabendo que o valor de UMASK é 007, qual seria a permissão para um
arquivo simples? Vamos as contas:

Em uma calculadora:
 777
-007
 ---
 770 Permissão para diretórios.
-111 - Tirando o x bit de execução
 ---
 659 Opa... apareceu um valor maior que 7? Sim isso mesmo. O calculo com a ajuda de uma calculadora resulta um valor errado, no que se refere as permissões de diretórios e arquivos no Linux.

Para o calculo de umask digamos que, não é usada uma matemática comum. No caso da subtração de 770 por 111, no calculo comum e na calculadora ocorre o "empréstimo" do 7 da segunda casa para o 0 (zero) da primeira.

No caso de calculo de umask para permissões não ocorre "empréstimo", as casas são calculadas independentemente, uma por vez. E 0 (zero) subtraído de 1 é 0 (zero), diferente da matemática comum que seria -1.

O calculo com umask 007 então fica:
 777
-007
 ---
 770 Permissão para diretórios.
-111 - Tirando o x, que é o bit de execução
 ---
 660 - Temos então a permissão para um arquivo simples, com umask = 007

Nenhum comentário:

Postar um comentário

Grato por comentar