Gerenciar Permissões de Arquivos, Scripts e Usuários no Linux com o Terminal
Permissões
Os arquivos no Linux podem ter permissões para leitura r
, escrita w
e execução x
. Essas permissões podem ser concedidas ao dono do arquivo, ao grupo de usuários, e também, para outros usuários.
Com o comando ls -l
, podemos verificar a listagem de arquivos com todas as informações de permissões.

O primeiro caractere diferencia entre arquivo ou diretório. Quando se trata de um arquivo, é exibido um traço -
. Já o diretório é representado por um d
minúsculo. Os três próximos caracteres indicam as permissões do usuário dono desses arquivos. Na sequência, os próximos três caracteres informam as permissões para o grupo de usuários ao qual o dono pertence. Os três últimos, representam as permissões atribuídas aos demais usuários do sistema. Depois das informações de permissão, temos o nome do usuário dono do arquivo e o grupo ao qual o usuário pertence.
Permissões de Arquivos
O arquivo atualizar-sistema
, mostrado na imagem acima, é um pequeno script que utilizamos como exemplo em um artigo passado. Ele é simplesmente um arquivo de texto, mas possui comandos que um interpretador do linux como o Bash consegue entender.
Como você pode ver, todos os usuários têm permissão de leitura sobre esse arquivo, mas somente o usuário dono pode escrever nele, ou seja, editar. Do jeito que está, não é possível executá-lo, a não ser com o auxílio do sh
.
Para que seja possível executar esse arquivo diretamente, precisamos atribuir permissão de execução a ele. O comando que altera as permissões é o chmod
. No caso aqui, queremos atribuir permissão de execução, então fazemos:
chmod +x atualizar-sistema
Da mesma forma que adicionamos permissão de execução com +x
podemos retirá-la com -x
, adicionar ou retirar mais de uma permissão ao mesmo tempo +xr
, -xr
, etc.
Para alterar somente as permissões do usuário, uso o modificador u
user. Alterar somente as do grupo, o modificador g
group e de qualquer outro usuário o
others. Abaixo, na seção Controle de Usuários, há um exemplo desse uso.
Em nosso caso, adicionamos a permissão de execução desse script a todos os usuários.

Agora já posso executar o script sem o auxílio do sh
mas ainda preciso passar sua localização. O motivo é que o sistema ainda não sabe onde o arquivo a ser executado se encontra.
Controle de Usuários
Suponha que eu tenha dois usuários em minha máquina, um chamado airton e outro, vanessa.
Estou logado com o usuário airton. Mesmo assim, consigo acessar os diretórios do usuário vanessa.
Se você reparar na imagem abaixo, o sinal gráfico til ~
representa que estou na home do usuário airton. Navegando para fora dessa pasta através do cd ..
, acesso o diretório pai, onde estão todos os usuários.
Se você tiver curiosidade em conhecer mais sobre comandos de navegação no Linux, visite o artigo que escrevemos a respeito.
Ao listar o conteúdo do diretório pai com o ls
, vejo que existe o diretório do usuário airton e o da vanessa. Ao executar um cd vanessa
, acesso o conteúdo desse diretório tranquilamente.

Isso acontece porque no Ubuntu o diretório home de todos os usuários é criado com permissão de leitura e execução para todos os usuários do sistema.

Para resolver isso, vou me logar como vanessa e usar o comando chmod
para retirar permissões de leitura e execução da própria pasta vanessa para usuários classificados como "outros" o-rx
.
chmod o-rx vanessa

Agora eu como airton também preciso impedir que os outros usuários do sistema tenham acesso aos meus diretórios. Então preciso repetir esse processo para o meu usuário também.
Fechando e reabrindo o terminal. Ao tentar fazer o acesso, já recebo a informação de que a permissão foi negada.