sábado, 17 de julho de 2010

Aplicando permissões em arquivos e diretórios

Permissão de arquivos e diretórios.


As permissões em GNU/Linux aplicam-se aos arquivos e diretórios do sistema, com o intuito de proteger o sistema contra acessos indevidos, não autorizados; proteger arquivos de configuração e proteger arquivos de usuário contra modificações feitas por outros usuários. O esquema de permissionamento do linux é um pouco difícil de entender, por isso recomenda-se a leitura juntamente com a pratica.


Donos, grupos e outros usuários


Sistemas GNU/Linux dividem as permissões de acesso para três entidades: donos, grupos e outros usuários. Estas entidades para fins didáticos podem ser representados por letras: u=user(dono); g=grupo; o=outros usuários.


  • user – é o dono do arquivo/diretório. É o usuário que criou o arquivo; somente o dono ou então o user root poderão modificar as permissões de acesso ao arquivo; A identificação do user é chamada de id;

  • group – grupo que é proprietário do arquivo. Participam do grupo aqueles usuários que não são dono do arquivo mas tem permissão de acesso ao arquivo; Cada usuário pode fazer parte de um ou mais grupos e então acessar arquivos que pertençam ao mesmo grupo que o seu (mesmo que estes arquivos tenham outro dono). A identificação do grupo é chamada de gid;

  • others – são todos os outros usuário do sistema que não são o dono do arquivo e nem pertencem ao grupo do arquivo;


Tipos de permissão


As permissões concedidas serão permissões de leitura, escrita e execução de um determinado arquivo ou diretório.

r – permissão de leitura para arquivos; caso for um diretório terá permissão de listar;

w permissão de escrita/gravação para arquivos; caso for um diretório terá permissão de gravar em arquivos, criar e excluir arquivos e diretórios;

x – permissão de execução, caso seja um programa executável; para diretórios a permissão é de listar com o comando cd;


para melhor entender o esquema de funcionamento de permissões em linux será dado um exemplo, aplicando-se o comando ls -l em um arquivo qualquer. O resultado é o seguinte:

# ls -l linux.bmp

-rwxr-xr-x 1 professor root 881642 2010-03-30 08:54 linux.bmp


  • O primeiro caractere (-) me diz que “linux.bmp” é um arquivo; se for “d” é um diretório; caso for “l” é um link, etc;

  • Da segunda até o quarto caracteres (rwx) são as permissões do dono do arquivo, no caso o dono é o professor e tem permissão de leitura (r), escrita (w) e execução do arquivo (x);

  • Do quinto caractere até o sétimo (r-x) são as permissões do grupo ao qual o arquivo pertence. Essas informações me dizem que o grupo tem poder de ler (r) e executar (x) o arquivo; e é negada para este o direito de gravar (-);

  • Do oitavo até o décimo (r-x) são as permissões dos outros usuários. Essas informações me dizem que os outros usuários tem poder de ler (r) e executar (x) o arquivo; e é negada para este o direito de gravar (-);

  • professor – é o usuario dono do arquivo;

  • root – grupo ao qual o user professor pertence;

  • 8816 – tamanho do arquivo em mbyes;

  • 2010-03-30 08:54 – data e hora de criação do arquivo;

  • linux.bmp – nome do arquivo;

É importante ressaltar que o caractere “-” no inicio da linha de permissionamento (-rwxr-xr-x) me informa que estou diante de um arquivo; já na seqüência quando estamos vendo as permissões do grupo e outros usuário, este mesmo caractere “-” (-rwxr-xr-x) simboliza uma ausiência de permissão, ou negação de permissão para o grupo ou outros usuários.

O acesso a um arquivo/diretório é feito verificando primeiro se o usuário que acessará o arquivo é o seu dono, caso seja, as permissões de dono do arquivo são aplicadas. Caso não seja o dono do arquivo/diretório, é verificado se ele pertence ao grupo correspondente, caso pertença, as permissões do grupo são aplicadas. Caso não pertença ao grupo, são verificadas as permissões de acesso para os outros usuários que não são donos e não pertencem ao grupo correspondente ao arquivo/diretório” (Guia foca linux).

As permissões de arquivos são completamente manipuladas e, dependendo da necessidade posso estar dando ou negando permissão de leitura, gravação e execução dos arquivos/diretórios para determinados usuários. A seguir serão listados alguns comandos que permitem a modificação das permissões de acesso para arquivos e diretórios.


Chmod


Muda a permissão de acesso a um arquivo ou diretório. Com este comando é possível escolher se usuário ou grupo terá permissões para ler, gravar, executar um arquivo ou arquivos.


chmod [opções] [permissões] [diretório/arquivo]

Onde:

diretório/arquivo
Diretório ou arquivo que terá sua permissão mudada.
opções
v --verbose - Mostra todos os arquivos que estão sendo processados.
f --silent - Não mostra a maior parte das mensagens de erro.
c --change - Semelhante a opção -v, mas só mostra os arquivos que tiveram as permissões alteradas.
R --recursive - Muda permissões de acesso do diretório/arquivo no diretório atual e sub-diretórios.


DICA: É possível copiar permissões de acesso do arquivo/diretório, por exemplo, se o arquivo teste.txt tiver a permissão de acesso r-xr----- e você digitar chmod o=u, as permissões de acesso dos outros usuários (o) serão idênticas ao do dono (u). Então a nova permissão de acesso do arquivo teste.txt será r-xr--r-x

Exemplos de permissões de acesso:

Tomamos como exemplo o arquivo acima:

ls -l linux.bmp

-rwxr-xr-x 1 professor root 881642 2010-03-30 08:54 linux.bmp

podemos modificar as permissões de acesso deste arquivo da seguite maneira:

chmod u=rwx,g=rw,o=r linux.bmp – com este comando eu estou dizendo que:

O dono do arquivo (u) terá permissão total; leitura, gravação e execução (rwx).

Os usuários que pertencem ao grupo do arquivo (g) terão permissão de leitura e escrita (rw).

Os outros usuários (o) terão somente permissão de leitura do arquivo (r).

Depois de aplicado este comando as permissões ficariam assim:

$ ls -l linux.bmp

-rwx rw- r-- 1 professor root 881642 2010-03-30 08:54 linux.bmp

Este sinais aplicam-se ao esquema de permissionamento;

= Aplique as permissões exatamente assim.

+ Adicionar mais essa permissão.

- Tirar essa permissão.

Outros exemplos:

chmod g+r * - Permite que todos (*) os usuários que pertençam ao grupo dos arquivos (g) tenham (+) permissões de leitura (r) em todos os arquivos do diretório atual.
chmod o-r teste.txt - Retira (-) a permissão de leitura (r) do arquivo teste.txt para os outros usuários (usuários que não são donos e não pertencem ao grupo do arquivo teste.txt).
chmod uo+x teste.txt - Inclui (+) a permissão de execução do arquivo teste.txt para o dono e outros usuários do arquivo.
chmod a+x teste.txt - Inclui (+) a permissão de execução do arquivo teste.txt para o dono, grupo e outros usuários.
chmod a=rw teste.txt - Define a permissão de todos os usuários exatamente (=) para leitura e gravação do arquivo teste.txt.

chmod u=rwx,g=rw,o=g linux.bmp – desta maneira estou dizendo que o outros usuários (o) deverão ter permissão exatamente igual a permissão do grupo (o=g);

Obs.: as permissões de acesso a arquivo/diretório são aplicados ao dono (u), grupo (g) e outros usuários (o). Mas, conforme alguém deve ter observado, existe algum momento que a sintaxe ficou da seguinte maneira "chmod a=rw teste.txt" o "a", significa all; quer dizer, desta maneira apliquei permissão de leitura (r) e gravação (w) para todos os usuários, ou seja, para o dono, o grupo e os outros usuários do sistema. "a" quer dizer - todos os usuários do sistema.

Permissão octal para arquivos/diretórios


Uma outra maneira de aplicar permissão para aquivos e diretórios é usar o modo octal. O modo octal utiliza números ao invés de letras para dar ou negar permissão em um arquivo/diretório.


1 – permissão de execução (x)

2 - permissão de gravação (w)

4 - permissão de leitura (r).


As permissões serão dadas ou negadas somando-se ou subtraindo-se os números. Por exemplo:


#chmod u=rwx,g=rw,o=r linux.bmp

Em modo octal ficaria assim:

#chmod 764 linux.bmp


Estes comandos são equivalentes; usando o formato octal o “7” denota a permissão do dono do arquivo; o “6” representa a permissão do grupo do arquivo e o “4” representa as permissões dos outros usuários; no caso, somente permissão de leitura.


Para um completo entendimento do esquema de permissionamento usado para arquivos e diretórios em GNU/Linux, ainda é necessário estudar "permissões especiais" e "valor padrão das permissões - valor da umask" assuntos estes negligenciados neste post. Quem sabe em um próximo post poderei estar escrevendo sobre isso.


Referências:

SIQUEIRA, Luciano Antonio.
Certificação LPI-1: 101-102. São Paulo: Linux New Media, 2009.

PRITCHARD, Steven et al.
Certificação Linux LPI: Guia de referência nível 1: Exames 101 e 102. Rio de Janeiro: Alta Books, 2007.

FERREIRA, Rubem E.
LINUX: Guia do Administrador de Sistemas. São Paulo: Novatec, 2008.

Guia Foca Linux, 2010. Disponível em : http://focalinux.cipsga.org.br/ . Acesso em 13 de julho de 2010.








1 Comentários:

Às 18 de junho de 2013 às 21:19 , Anonymous Anônimo disse...

Importantíssimo conteúdo sobre "permissões" para iniciantes em "LINUX"...

Valeu 100 pontos!

Grato por disponibilizar tal conhecimento.

 

Postar um comentário

Assinar Postar comentários [Atom]

<< Página inicial