quinta-feira, 23 de outubro de 2008

Permissão de Arquivos - Parte 02

Na primeira parte desse artigo foi explicado como as permissões são formadas. Nesta segunda parte iremos alterar as permissões dos arquivos e diretórios, lembrem-se que essas ferramentas são de suma importância para administradores linux, desejo imensamente estar ajudando apesar de não receber muitas postagens com duvidas, até breve

1. Alterando o dono de arquivo/diretório

Através do comando chown é possível alterar o dono, bem como o grupo de um arquivo/diretório.

Ex1: Alterando o dono da pasta teste

[root@localhost Público]# chown root teste

Ex2: Alterando o dono e grupo da pasta teste

[root@localhost Público]# chown root:admin teste

Se especificarmos a opção -R a alteração será feia de forma recursiva para todo o diretório e subdiretórios

Ex3: Alterando o dono e grupo da pasta teste de forma recursiva

[root@localhost Público]# chown -R root:admin teste

2. Alterando o grupo de arquivo/diretório

Através do comando chgrp é possível alterar o grupo de um arquivo/diretório.

Ex1: Alterando o grupo da pasta teste

[root@localhost Público]# chown root teste

Se especificarmos a opção -R a alteração será feia de forma recursiva para todo o diretório e subdiretórios

Ex2: Alterando o grupo da pasta teste de forma recursiva

[root@localhost Público]# chown -R root teste

3. Alterando as permissões de arquivo/diretório

Através do comando chmod é possível alterar as permissões de um arquivo/diretório.

O comando chmod aceita duas forma de representação: a forma simbólica usando letras que representam as permissões, ou ainda o modelo octal conforme tabelas vistas no artigo Permissão de Arquivos - parte 1.

Forma Simbólica

As permissões são atribuídas através das letras (u) usuário, (g) grupo, (o) outros e (a) indicando para todos.

As letras devem ser seguidas dos operadores (+) indicando que a permissão deve ser adicionada, (-) indicando que ela deve ser removida ou ainda por (=), este setará os bits de permissão apenas para o modo especificado, caso o arquivo possua uma permissão não especificada, ela será removida.

As permissões seguem após os operadores anteriores e são expressados pelas letras (r) leitura, (w) gravação, (x) execução, (s) sgid ou suid, (t) stick.

Ex1: Removendo a permissão de execução para o grupo/outros e adiciona a permissão de escrita para o grupo/outros

[root@localhost Público]# chmod go-x,go+w filename

Ex2: Ativando o Suid

[root@localhost Público]# chmod u+s filename

Ex3: Ativando o Stick

[root@localhost Público]# chmod o+t filename

Ex4: Ativando permissão de execução para todos

[root@localhost Público]# chmod a+x filename

Forma Numérica

É especificado por quatro dígitos octais de acordo com as tabelas do artigo Permissão de Arquivos - parte 1. Se algum digito for omitido, ele será considerado como zero.

O primeiro digito configura a utilização do Suid, Sgid ou Stick, já o segundo configura as permissões do usuário, o terceiro as permissões do grupo e o quarto a de outros.

Ex1: Configurando permissão total para dono/grupo e leitura e execução para outros

[root@localhost Público]# chmod 775 filename

Ex2: Configurando permissão total para dono, leitura e execução para grupos, apenas leitura para outros e suid ativo.

[root@localhost Público]# chmod 4754 filename

4. Utilizando o umask

O comando umask é um filtro de permissões para a criação de arquivos e diretórios.

As permissões padrão para arquivos é 0666 e para diretórios é 0777.

Quando criamos um novo arquivo/diretório, o sistema calcula a diferença das permissões padrão do objeto com o valor do umask, o resultado será a permissão do objeto.

Ex1: Determinando o valor do umask

[root@localhost /]# umask

0022

Um sistema com umask 0222 terá as seguintes permissões para seus novos arquivos/diretórios:

Arquivos

0666

- 0022

--------------

0644 (U-Leitura/escrita, G-leitura, O-leitura)

Diretórios

0777

- 0022

--------------

0755 (U-Leitura/escrita/execução, G-leitura/execução, O-leitura/execução)

Ex2: Alterando o valor do umask

[root@localhost /]# umask 0002

[root@localhost /]# umask

0002

Alterar o umask do sistema é uma recomendação de segurança.