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.

Permissões de arquivos e diretórios no Linux.

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.

No nosso caso, adicionamos a permissão de execução desse script a todos os usuários.

Permissão de execução adicionada ao arquivo script-backup.

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.

Um usuário acessando diretórios do outro pelo terminal do Linux.

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.

Diretório home permitindo leitura por qualquer usuário.

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
Impedir que outros usuários acessam os diretórios do meu usuário.

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.

Ir para o topo