Comandos de manipulação de permissões no Linux
Entenda um pouco o sistema de permissões no sistema Linux
Pelo fato do Linux ser multiusuário, as permissões deve estar bem alinhadas para que o usuário tenha acesso somente aquilo que é de seu direito, incluindo pastas, arquivos e inclusive periféricos, como impressoras e drivers de CD por exemplo.
A Estrtutura básica das permissões é separada em três classes:
- Dono: define as permissões ao dono do arquivo, ou seja, que criou o arquivo.
- Grupo: define as permissões para o grupo de usuários ao qual o dono do arquivo pertence.
- Outros: define as permissões para os demais usuarios, que não seja o dono ou que faça parte do grupo.
Dentro de cada classe citada anteriormente, temos os tipos de acesso:
- Leitura (r): permissão de leitura para arquivos. Caso seja um diretório permite a listagem do seu conteúdo.
- Escrita (w): permite a escrita em arquivos ou criação dentro de pastas.
- Execução (x): permite a execução de um programa “executável”.
Quando a gente executa um ls -la no terminal, podemos ver como funciona:
No começo de cada linha temos 10 colunas referente as permissões de cada arquivo, onde a primeira coluna identifica o tipo do arquivo, se é um arquivo, um diretório, um link, etc. Após a primeira coluna, temos um conjunto de três colunas para cada classe de permissões, ou seja, do dono, do grupo e outros contando da esquerda para direita.
Diferença de permissões entre arquivos e diretórios:
Objeto | Leitura (r) | Gravação (w) | Execução (x) |
---|---|---|---|
Arquivo | Permite ler o conteúdo do arquivo | Permite alterar o arquivo | Permite executar arquivo como um programa |
Diretório | Permite listar o conteúdo do diretório | Permite criar e apagar arquivos no diretório | Permite ler e gravar arquvos no diretório |
Lista de comandos para trabalhar as permissões
chmod
Muda as permissões de acesso a um determinado arquivo ou diretório.
Sintaxe
|
|
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.
ugoa+-=rwxXst
- ugoa - Indica o nível de acesso será mudado. Especificam, em ordem, usuário (u), grupo (g), outros (o), todos (a).
- +-= - + adiciona a permissão, – retira a permissão do arquivo e = define a permissão exatamente como especificado.
- rwx - r permissão de leitura do arquivo. w permissão de gravação. x permissão de execução (ou acesso a diretórios).
Exemplos
|
|
chgrp
Muda o grupo de um arquivo ou diretório
Sintaxe
|
|
Opções
-v, –verbose
Mostra todas as mensagens e arquivos sendo modificados.
-R, –recursive
Altera os grupos de arquivos/sub-diretórios do diretório atual.
chown
Altera dono de um arquivo ou diretório. Pode também ser usado para mudar o grupo
Sintaxe
|
|
Opções
-v, –verbose
Mostra os arquivos enquanto são alterados.
-R, –recursive
Altera dono e grupo de arquivos no diretório atual e sub-diretórios.
Exemplos
|
|
umask
O comando umask define as permissões iniciais quando um arquivo ou diretório for criado. Digitando umask sem nenhum parâmetro podemos visualizar nosso umask atual. O umask cria permissão diferente caso o arquivo seja um executável e se for um arquivo texto. Veja a tabela a seguir:
---------------------------------------------
| | ARQUIVO | DIRETÓRIO |
| UMASK |----------------------| |
| | Binário | Texto | |
|------------------------------|------------|
| 0 | r-x | rw- | rwx |
| 1 | r-- | rw- | rw- |
| 2 | r-x | r-- | r-x |
| 3 | r-- | r-- | r-- |
| 4 | --x | -w- | -wx |
| 5 | --- | -w- | -w- |
| 6 | --x | --- | --x |
| 7 | --- | --- | --- |
---------------------------------------------
Caso seu umask seja 022, os arquivos de texto será criados por padrão com permissão 644, ou seja, rw- para o dono, r– para o grupo e r– para outros. Para que alterar o umask, geralmente deve-se alterar seu valor no arquivo /etc/profile.