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

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

Dentro de cada classe citada anteriormente, temos os tipos de acesso:

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

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

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

###sele%ef%bf%bd%ef%bf%bdo_004

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_.