Ir para o conteúdo principal
Background Image
  1. Posts/

Comandos de manipulação de permissões no Linux

·4 minutos·
Sidnei Weber
Autor
Sidnei Weber
Devops Engineer
Tabela de conteúdos

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:

ls ><

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:
#

ObjetoLeitura (r)Gravação (w)Execução (x)
ArquivoPermite ler o conteúdo do arquivoPermite alterar o arquivoPermite executar arquivo como um programa
DiretórioPermite listar o conteúdo do diretórioPermite criar e apagar arquivos no diretórioPermite 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
#

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

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
#

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 a+x teste.txt
# Inclui (+) a permissão de execução do arquivo teste.txt para o dono, grupo e outros usuários.
chmod 777 teste.txt
# Coloca permissão total de escrita, leitura e execução no arquivo teste.txt para todos usuários

chmod ><

chgrp
#

Muda o grupo de um arquivo ou diretório

Sintaxe
#

chgrp [opções] [grupo] [arquivo/diretório]

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
#

chown [opções] [dono.grupo] [diretório/arquivo]

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
#

chown sidnei teste.txt
# Muda o dono do arquivo teste.txt para sidnei.

chown sidnei.admin teste.txt
# Muda o dono do arquivo teste.txt para sidnei e seu grupo para admin.

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.

Relacionados

Introdução Firewall Iptables - Começando
·6 minutos
Simular tráfego de usuário para um servidor
·2 minutos
Criando arquivo de SWAP no Linux
·1 minuto
Como redimensionar volume EBS no Linux sem downtime
·2 minutos
Exemplos de uso do comando ping
·4 minutos
Convertendo arquivos DOS ^M com Vim
·1 minuto