Aprenda a gerenciar permissões em sistemas Linux e entenda o chmod 777
Saber gerenciar permissões em sistemas Linux não é apenas útil para o usuário doméstico, como também é essencial para qualquer pessoa que pretenda se tornar um profissional. No modo gráfico é fácil, basta clicar com o botão direito sobre algum arquivo ou pasta, e mudar as permissões de leitura, escrita e execução. No vídeo de hoje vamos aprender sobre o gerenciamento de permissões do Linux via terminal, algo essencial para tirar certificações, passar em concursos e trabalhar como administrador de sistemas. Agora você saberá o que significa o famoso chmod 777.
Entenda o que significa cada entidade
Permissões são uma das bases fundamentais do gerenciamento profissional de servidores Linux, o primeiro passo é entender que existem entidades dentro de um sistema operacional Linux, chamadas usuários e grupos. Os usuários podem ser de dois tipos, humanos, e usuários do sistema.
Quais as diferenças entre os tipos de usuários?
Usuários humanos são pessoas que estão interagindo com os sistemas, eles podem ter credenciais de root, com permissões para fazer o que quiser com o sistema, inclusive, destruí-lo por completo, ou ser um usuário comum, com poderes limitados.
Usuários do sistema não serão operados por humanos diretamente, mas são responsáveis por certos processos que vão rodar geralmente em background e de forma automática.
Todos os usuários tem um ID único usado para o gerenciamento, um Shell e um diretório raiz, porém usuários do sistema, ao contrário dos humanos, geralmente não tem um shell de verdade ou uma pasta de dados raiz, ao invés disso eles são direcionados para /bin/false ou /sbin/nologin, dependendo da distro.
Os grupos são a segunda entidade no Linux, que representa um agrupamento de usuários e também têm um ID único. Você pode ver todos os usuários da sua distro, sejam humanos ou do sistema, observando o arquivo /etc/passwd, os Grupos podem ser vistos em /etc/group.
Agora que você já sabe como funcionam e quais são os tipos de usuários em sistemas Linux, temos o contexto necessário para explicar sobre o sistema de permissões de arquivos.
Saiba sobre os tipos de permissão
Digitando o comando ls -l
, podemos ver as permissões nos arquivos, além de muitas outras informações importantes, então, que tal a gente aprender a ler a saída desse comando tão relevante?
Para ilustrar, usaremos o seguinte retorno que recebemos do comando ls -l
:
drwxr-xr-x 2 diolinux diolinux 4096 fev 15 08:40 Downloads
O primeiro caractere dessa linha indica o tipo de arquivo, se for um “d”, significa que é um diretório, ou uma pasta, um traço significa que é um arquivo, já o “L”, significa que é um link simbólico.
Observemos a próxima parte da saída do comando ls -l
, esse conjunto de nove caracteres na sequência (rwxr-xr-x) é o que define as permissões do arquivo, pasta ou link simbólico em questão. O que esse monte de letrinhas quer dizer?
Cada 3 caracteres dessa sessão representam as permissões para entidades diferentes do sistema. As 3 primeiras são as permissões do usuário que é dono deste arquivo ou pasta, as 3 seguintes são as permissões do grupo, e as 3 últimas são as permissões para todos os outros. Vamos entender então o que significam as letras em si.
- R: Quer dizer permissão para leitura “read”, ou seja, na prática, quem tiver essa permissão pode visualizar o conteúdo do arquivo ou pasta;
- W: Quer dizer “write”, ou seja, “escrever”, alguém com permissão de “write” pode modificar ou alterar o arquivo ou diretório;
- X: É uma forma de representar “execute”, ou seja, executar. Um arquivo com essa permissão pode ser tratado como um programa.
Essas entidades podem ser referenciadas em comandos com a letra “u” para “owner”, ou “user” para ficar mais fácil de associar, “g” para “group” ou grupo e “o” para “other” ou outros.
Agora que você já sabe o que as letras significam, vamos dar uma olhada de novo na sequência rwxr-xr-x. Separando de 3 em 3, podemos ver que o dono do arquivo tem permissão para ler, escrever e executar o arquivo, o grupo tem permissão de ler, não tem permissão de escrever, ou seja, não pode modificar, mas pode executar o arquivo, o que é exatamente a mesma coisa que todos os outros podem fazer.
Quando existe um traço no lugar de onde deveria estar uma letra, temos essa permissão negada ou desativada. Sendo assim, temos um esquema de interruptor, quando há uma letra, temos a permissão ativa, se não, ela foi negada, sendo então, um sistema binário.
Entenda o chmod para gerenciar permissões em sistemas Linux
Se convertermos o exemplo rwxr-xr-x para binário, temos, 111101101. Separando de 3 em 3, teríamos, 111, 101, 101, certo? Convertendo de binário para números decimais, neste caso, podemos representar o sistema de permissões com o número 755.
Como os sistemas de permissões tem basicamente 3 condições, leitura, escrita e execução, os números também são previsíveis; 4 sempre vai ser read, 2 sempre vai ser write e 1 sempre vai ser execute:
- r (read): 4;
- w (write): 2;
- x (execute): 1.
Ou seja, se você quiser que o arquivo tenha permissão de leitura, escrita e execução, você vai ter 4+2+1, que dá 7, se você quiser que ele tenha acesso a leitura, mas não possa escrever e possa executar, terá 4+1, que é igual a 5, que forma a alcançar o 755.
O que podemos fazer com estes números? É aí que entra o comando “chmod”, com ele, você vai mudar as permissões dos arquivos e pastas no Linux, usando letras ou números, para dizer ao sistema como você quer que as coisas sejam.
Por exemplo, em um hipotético arquivo denominado “diolinux” que não tenha permissão para executar, se você quiser mudar isso, abra o terminal a partir da pasta dele e digite chmod +x diolinux
. Assim, adicionamos permissões de execução “x” para o dono, o grupo e para outros.
Para remover uma permissão, podemos usar o mesmo padrão, mas com o sinal de menos: chmod -x diolinux
. E para mudar as permissões só do usuário, só do grupo ou só de outros, como fazer?
Muito simples, vamos usar as letras que servem para referenciar essas entidades. Para adicionar a permissão de execução somente para o usuário, mas não para o grupo e para outros, podemos usar o comando chmod u+x diolinux
.
Esse “u” é a referência ao usuário, se quiser alterar para grupo, basta usar o “g” no lugar, e para outros “o”, assim como se quiséssemos alterar a leitura, usaríamos o “r”, ou “w”, se quiséssemos alterar a escrita. Para remover permissões, usamos o mesmo padrão, mas trocando o sinal de mais, pelo de menos.
chmod 777
Como tudo na informática, há mais de uma forma de fazer a mesma coisa, caso você preferir, pode usar números em vez das letras, dessa forma, usando o comando chmod 777 nome_do_arquivo
, você libera todas as permissões para o arquivo, afinal somando 4+2+1 da tabela que já mostramos acima, temos o número 7. Sendo assim, você consegue adivinhar quais permissões haveriam com o comando chmod 775 nome_do_arquivo
?
Caso você tenha dúvidas quanto a isso, um site muito legal para você consultar é o chmod-calculator.com, basta colocar as permissões que quer para o arquivo ou diretório, que ele vai te ajudar a entender como fica a versão com letras e com números do comando, pode ser de grande ajuda para quem estiver começando.
Assista ao vídeo até o final para entender tudo sobre como gerenciar permissões em sistemas Linux e se tiver alguma dúvida, conte-nos nos comentários, onde você interage com a comunidade Diolinux Plus, que é apaixonada pela tecnologia do mundo dos pinguins!
Caso tenha ficado feliz em aprender algo novo e esteja se sentindo mais inteirado sobre Linux, mostre isso ao mundo utilizando uma estampa que homenageia esta incrível tecnologia!