Normalmente, o iniciante no sistema Linux considera o uso de comandos no terminal um grande desafio de adaptação. Tendo em vista facilitar esse processo, já abordei especificamente uma série de comandos (dpkg, apt, find e aptitude) e, para continuar a série, falarei sobre o comando chmod.
Embora o chmod não seja muito utilizado (em nível de rotina), ele tem notável importância em função dos problemas que ele resolve. Ou seja, situações que envolvem permissões em arquivos do sistema Linux.
Se você está pensando em trabalhar com um servidor de arquivos com samba por exemplo, vai precisar dominar o comando chmod antes.
Sendo assim, se você procurava por um comando específico para modificar permissões de arquivo ou diretório, o presente artigo vem a ser útil! Nele, explico o chmod em mais detalhes, forneço exemplos de uso e os cuidados necessários.
Propósitos do comando chmod
Também conhecido como change mode, o comando chmod permite ao administrador de sistemas configurar ou alterar permissões sobre um arquivo (ou diretório) a partir do terminal.
Quando se gerencia uma rede de computadores, lidar com as permissões dos usuários é essencial. Isso porque os objetos do sistema Linux são associados a um usuário (ou grupo de usuários) autorizado(s) a: ler, editar, ou executá-los.
Essa aplicação de regras é chamada “permissões de arquivo” e ela é feita automaticamente, assim que o arquivo é gerado no sistema operacional.
Por isso, é comum que erros sejam apresentados ao tentar executar um documento, por exemplo, e o comando chmod tenha de ser acionado para resolver o problema. Mas, antes de editar as regras é preciso saber, de fato, como elas funcionam.
Como funcionam as permissões de arquivo?
As permissões de arquivo estão presentes no Linux — e outros baseados no Unix — com o intuito de reforçar a proteção dos dados. Nesse sentido, elas são usadas para determinar quem pode acessar o documento e o que tal acesso engloba.
Para demarcar o acesso, o sistema classifica os usuários de três maneiras: User (o proprietário do arquivo), Group (grupo de usuários com acesso permitido), e Other (qualquer usuário).
Além das classes de usuários, a restrição é complementada pelos tipos de acessos concedidos a eles, sendo eles: Read (habilita o usuário a ler o arquivo), Write (permite a edição do conteúdo), e Execute (autoriza a execução do arquivo no sistema).
Os tipos de acesso são indicados no terminal por meio de letras, onde “r” representa “Read”, “w” corresponde a “Write” e o “x”, ao “Execute”.
Sendo assim, ao executar o comando ls (ls -l) para consultar as permissões do arquivo, a pela pode ser representada similarmente a esta:
-rwxr-xr–
Sabe como decifrar a permissão acima? Primeiramente, deve-se ter em mente que o primeiro dos dez caracteres (“-”) indica que o arquivo em questão é regular. Caso se tratasse de um diretório, o símbolo seria substituído pela letra “d”.
Os demais nove caracteres são, na verdade, três conjuntos iguais.
- rwx (significa que o dono do arquivo tem permissão para leitura, edição e execução);
- r-x (estabelece que os usuários do grupo a que pertence o arquivo podem apenas lê-lo e executá-lo); e
- r– (qualquer usuário tem autorização para ler o arquivo, mas não pode editá-lo e nem executá-lo).
Agora que você já tem uma noção de como as permissões funcionam, vamos retomar às funcionalidades do chmod.
Como o chmod funciona na prática?
Para acionar o comando chmod em sua distribuição Linux, é preciso se basear na seguinte sintaxe:
chmod opções permissões nome_do_arquivo
ou
chmod permissões nome_do_arquivo
Isto é, se não houver nenhuma especificação para o campo “opções” (“options”), você pode, simplesmente, digitar as permissões seguidas do nome do arquivo. Vamos a um exemplo prático.
Supondo que o usuário crie um arquivo chamado “arquivo1” e queira estabelecer algumas regras para os demais usuários da rede.
Assim, o proprietário do arquivo1 deve ter permissões de leitura, edição e execução deste, enquanto o restante do grupo só pode ler e editar. Os outros usuários têm acesso somente para leitura. Para isso, o chmod pode ser usado da seguinte maneira:
chmod u=rwx,g=rw,o=r arquivo1
Assim como as letras “r”, “w” e “x” representam os tipos de permissões, os caracteres “u”, “g” e “o” significam User, Group e Other, respectivamente.
Há, contudo, a possibilidade de realizar o mesmo procedimento usando o modo octal. Neste modo, as permissões são compostas de oito níveis (0 a 7) e representadas por números, os quais indicam:
- 0 = nenhuma permissão;
- 1 = apenas executar;
- 2 = apenas gravar;
- 3 = gravar e executar;
- 4 = apenas ler;
- 5 = ler e executar;
- 6 = ler e gravar; e
- 7 = ler, gravar e executar.
Logo, o mesmo comando do exemplo anterior pode ser feito da seguinte forma no modo octal:
chmod 764 arquivo1
Observe que cada algarismo corresponde a cada uma das classes de usuários (User, Group e Other).
Exemplos de uso do chmod
Tendo em vista reforçar o que expliquei nos tópicos anteriores, vejamos, abaixo, exemplos básicos de uso do comando chmod para certas permissões do nosso “arquivo1”.
Somente o User pode ter acesso (total) ao arquivo
chmod 100 arquivo1
ou
chmod -rwx------
Apenas o Group está autorizado a executar
chmod 010 arquivo1
ou
chmod ----x---
Todas as classes de usuários podem ler o arquivo
chmod 444 arquivo1
ou
chmod -r--r--r--
Acesso total para o User e leitura para os demais
chmod 744 arquivo1
ou
chmod -rwxr--r--
Apenas User e Group podem acessar o diretório do arquivo
chmod 740 arquivo1_dir
ou
chmod d—r-----
Como você pode perceber, o comando chmod possibilita ao administrador de sistemas controlar o acesso aos arquivos de diversas formas. Contudo, há uma permissão em especial que deve ser evitada — falarei sobre ela, abaixo.
Os perigos do comando chmod 777
Pela sequência binária à frente do comando chmod já se pode entender a permissão que ele aplica, não é mesmo? Sabendo-se que 7 é o nível mais alto de permissão no modo octal, logo o 777 significa concessão total de permissão a todos os usuários da rede.
O maior perigo do chmod 777 é quando o comando é aplicado a um diretório crucial do sistema, como o root (/), o que implicaria acesso livre de restrições a todos. Um desastre dessa natureza abriria as portas para ameaças — tanto internas quanto externas.
Portanto, evite utilizar os comandos:
chmod 777 (diretório)
e
chmod drwxrwxrwx
Concluímos, portanto, que o comando chmod nos permite blindar os arquivos eficientemente. Porém a má utilização dele pode trazer grave vulnerabilidade ao sistema, comprometendo a segurança de todo o ambiente de TI. Sabendo disso, você está disposto a se aprofundar no chmod?
Se sim, aproveite o momento para iniciar com LINUX, faça sua inscrição na aula gratuita do Profissionais Linux. Ali, você aprenderá, entre tantas coisas, como utilizar os comandos em nível avançado!