Sunday, October 08, 2006

Linux - Modo de acesso para novos arquivos e diretórios

Quando um novo arquivo ou diretório é criado, o processo de criação especifica a permissão que o novo arquivo ou diretório deverá ter.
As permissões padrões para novos arquivos ou diretórios criados são aplicadas nas configurações da conta de cada usuário individalmente.

O modo de acesso aplicado por padrão é 0666 para arquivos, e 0777 para diretórios.
O qual permite que o arquivo seja lido e escrito por qualquer usuário do sistema.

Mas na maioria das distribuições Linux, esse valor de permissão de acesso é alterados para que o sistema não fique inseguro.
Normalmente utilizam o valor 0022, mas podemos alterar este valor e especificar um valor personalizado.
Esta permissão padrão é visualizada e alterada através do comando umask.

Conteúdo:

1 - Visualizando o valor atual
2 - Alterando valores do umask
3 - Cálculo feito para aplicar o valor 0077 (u=rwx,g=,o=) no umask para novos arquivos e diretórios

Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:

- O texto em Negrito assume que se trata de um comando que deve ser digitado.
- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.
- O ">>>" significa que você deve digitar no interpretador do Python.
- O "#" significa que o comando dever ser executado como usuário "root".
- O "$" significa que o comando deve ser executado como usuário sem privilégios.

1 - Visualizando o valor atual:

Execute o comando umask sem nenhum valor como parâmetro, e ele irá retornar o valor atual do umask.

Exemplo:

$ umask
0022

Execute o comando umask com a opção -S, e ele irá retornar o valor simbólico da permissão atual.

Exemplo:

$ umask -S
u=rwx,g=rx,o=rx

2 - Alterando valores do umask:

Para alterar os valores do umask, é necessário executar o comando umask com a permissão de usuário, grupo e outros usuários que queremos "retirar" para novos arquivos ou diretórios criados.
Estes valores indicam a permissão que queremos subtrair (retirar) do valor padrão. E devem ser passados como parâmetro para o comando umask.
Lembrando que o valor padrão para arquivos é 666, e para diretórios é 777.

Exemplo:

Se você gostaria de manter seus novos arquivos e diretórios com mais privacidade, desabilitando acesso para grupo ou outros usuários, você deve utilizar o comando umask com o valor octal: 0077 ou com o valor simbólico: u=rwx,g=,o=
Escolha o modo que você mais gosta, os dois fazem a mesma coisa.

- Usando valor modo octal:

$ umask 0077
$ touch novo_arquivo.txt
$ mkdir novo_diretorio
$ ls -la
drwx------ 2 root root 48 Oct 8 15:21 .
drwxr-xr-x 28 roberto roberto 1.6K Oct 8 15:21 ..
-rw------- 1 root root 0 Oct 8 15:21 novo_arquivo.txt
drwx------ 2 root root 48 Oct 8 15:21 novo_diretorio

- Usando valor modo simbólico:

$ umask u=rwx,g=,o=
$ touch novo_arquivo.txt
$ mkdir novo_diretorio
$ ls -la
drwx------ 2 root root 48 Oct 8 15:21 .
drwxr-xr-x 28 roberto roberto 1.6K Oct 8 15:21 ..
-rw------- 1 root root 0 Oct 8 15:21 novo_arquivo.txt
drwx------ 2 root root 48 Oct 8 15:21 novo_diretorio

3 - Cálculo feito para aplicar o valor 0077 (u=rwx,g=,o=) no umask para novos arquivos e diretórios:

- Arquivos:

Permissão PADRÃO dos arquivos: 0666 ou u=rw,g=rw,o=rw
Valor que queremos retirar: 0077 ou u=,g=rw,o=rw
Resultado, arquivos terão permissão: 0600 ou u=rw,g=,o=

- Diretórios:

Permissão PADRÃO dos diretórios: 0777 ou u=rwx,g=rwx,o=rwx
Valor que queremos retirar: 0077 ou u=,g=rwx,o=rwx
Resultado, diretórios terão permissão: 0700 ou u=rwx,g=,o=

Agora quando você quiser alterar a permissão padrão dos novos arquivos ou diretórios é só fazer o cálculo de subtração do valor padrão e do valor a ser passado para o umask, para obter a permissão que o novo arquivo ou diretório vai ter.

Referência:
LPI Linux Certification in a Nutshell
IBM DeveloperWorks - Linux LPI - Tópico 104.

Recursos:
Manual do comando umask


3 Comments:

At 3:11 AM, Blogger Carlos Alberto said...

Roberto... Parabéns... Foi o primeiro, em muitos tutoriais, que consegui entender como trabalhar com o umask.
Continue assim...

Sucessos.

Krlos Setkeycodes

 
At 3:12 AM, Blogger Carlos Alberto said...

Roberto... Parabéns... Foi o primeiro, em muitos tutoriais, que consegui entender como trabalhar com o umask.
Continue assim...

Sucessos.

Krlos Setkeycodes

 
At 1:07 PM, Blogger Andrey Smith said...

Roberto,

Apenas uma observação: a finalidade do comando touch não é a criação de arquivos.

 

Post a Comment

<< Home