Permissionamento
Como Funciona o Permissionamento
Todo arquivo ou diretório no Linux, possui permissões de Leitura, Escrita e Execução, que são atribuídas ao Owner (usuário que criou), Group (usuários que fazem parte de um grupo de usuários) e Others (que são os demais usuários do SO).
Para vermos tais permissões, vamos executar o comando ls -lh
e analisar a saída:

EXPLICAÇÃO: ls = Lista os arquivos -lh = Exibe detalhes dos arquivos e de forma mais amigável
Já na primeira coluna, podemos ver as permissões do arquivo meu_arquivo.txt e do diretório meu_diretorio. Vamos então dividí-la em 4 partes, sendo a primeira parte, o primeiro caractere e mais 3 partes contendo 3 caracteres cada, ficando assim:
- rw- rw- r--
d rwx rwx r-x
A primeira parte pode ser um dos seguintes:
CARACTERE
DESCRIÇÃO
-
Arquivo
d
Diretório
l
Link Simbólico (atalho)
As demais partes seguem sempre o mesmo padrão, seguindo exatamente a ordem rwx
. O caracter -
é o único que pode aparecer em qualquer lugar.
CARACTERE
DESCRIÇÃO
r
Read - Leitura
w
Write - Escrita
x
Execução
-
Denied - Sem Acesso
ATENÇÃO:
O conteúdo de um diretório pode ser listado se tiver permissão r
(leitura), porém só poderá acessar um arquivo dentro desse diretório, se o diretório tiver permissão x
(execução).
Segue abaixo uma imagem para melhor descrever:

Modificando as Permissões
Atribuindo permissões de leitura para o Group (g
) e Others (o
)
chmod go+r <arquivo
Removendo permissões de escrita para Others (o
)
chmod o-w <arquivo>
Adicionando permissões de leitura, escrita e execução para o proprietário (owner) do arquivo
chmod u+rwx <file>
Removendo permissão de escrita e execução para "grupo" e "outros"
chmod g-wx <file>
chmod o-wx <file>
Outra forma de alterarmos as permissões, é configurando todos os bits de uma só vez. Iremos utilizar 3 números (que vai de 0 a 7), o primeiro representa o User, o segundo representa o Group e o último representar Others. Cada número define o tipo de permissão, como podemos ver abaixo:
NÚMERO
REPRESENTAÇÃO
DESCRIÇÃO
0
-
Sem Permissão
1
--x
Apenas Execução
2
-w-
Apenas Escrita
3
-wx
Escrita e Execução
4
r--
Apenas Leitura
5
r-w
Leitura e Execução
6
rw-
Leitura e Escrita
7
rwx
Leitura, Escrita e Execução
Seguindo essa tabela, podemos atribuir permissão de "Leitura e Escrita" para o User e "Somente Leitura" para Group e Others.
chmod 644 <arquivo>
É comum vermos profissionais (inclusive administradores de redes inexperientes) que atribuem permissão total ao arquivo para todos os usuários do sistema, utilizando o comando chmod 7777 <arquivo>
. Pior do que isso, muitas vezes o comando é feito em um determinado diretório e de forma recursiva, como em: chmod -R 7777 <directory>
.
Quando fazemos o processo acima, os executáveis tem um s
no lugar do x
. Isso indica que o executável é setuid, o que significa que, ao executar o programa, o dono do arquivo, e não você, será o usuário que irá realizar a execução. Esse tipo de permissionamento pode gerar falhas de segurança e permitir até PrivEsc, como veremos mais adiante.
ATENÇÃO:
Nunca dê esse tipo de permissão caso não haja necessidade, principalmente em arquivos expostos, como arquivos de um sistema web.
Alterando User e Group
Isso pode ser útil quando precisamos fazer com que determinado arquivo ou diretório, passe a ser proprietário de outro User ou Group.
# Alterando o User
chown <novo_user> <arquivo>
# Alterando o Group
chgrp <novo_grupo> <diretorio>
# Alterando o Group de forma recursiva
chgrp -R <novo_grupo> <diretorio>
# Alterando User e Group simultaneamente
chown <user>:<group> <file>
Last updated
Was this helpful?