28.10.2024

Comando chmod do Linux

Introdução

O controle de acesso e permissões para arquivos desempenha um papel crucial na gestão de dados e segurança:

Em resumo, o controle de acesso e permissões é fundamental para manter a segurança, confidencialidade e integridade dos arquivos e dados. Ele previne acessos não autorizados, evita vazamentos e perdas de dados, além de garantir conformidade regulatória.

Requisitos

Permissões e atributos no Linux

No ambiente Linux, a gestão de arquivos e permissões é um processo detalhado e complexo, projetado para garantir máxima segurança e precisão no gerenciamento de dados. Vamos explorar isso mais a fundo. O Linux reconhece uma variedade de tipos de arquivos, como arquivos regulares, diretórios, links simbólicos e dispositivos. Cada tipo possui atributos e permissões únicas. No Debian 12, podemos verificar os atributos e permissões de todos os usuários com o comando abaixo:

ls -l

Screenshot №1 — Lista de permissões

Se quisermos verificar um arquivo específico, utilizamos o comando abaixo, indicando o arquivo desejado:

ls -l /etc/network/interfaces

Screenshot №2 — Arquivo individual

Agora, vamos explicar cada parâmetro na tela:

Cada arquivo está vinculado a um usuário específico (proprietário) e a um grupo designado. O ato de criar um arquivo torna o criador seu proprietário, e o arquivo é atribuído a um grupo específico. O Linux divide as permissões em três categorias: usuário, grupo e outros. Cada categoria pode receber permissões de leitura, gravação e execução distintas. Podemos alterar essas permissões utilizando o utilitário chmod.

As permissões também podem ser traduzidas para formas numéricas, onde leitura (r) equivale a 4, gravação (w) a 2 e execução (x) a 1. A soma dessas permissões representa a permissão numérica, como 755.

chmod 755 interfaces

Screenshot №3 — Chmod numérico

Se quisermos negar todas as permissões para todos os tipos de usuários, utilizamos o comando abaixo:

chmod 000 interfaces

Screenshot №4 — Chmod numérico negar

O comando chmod serve para modificar permissões. Ele aceita tanto notações simbólicas quanto numéricas. Por exemplo, chmod u+w filename concede permissão de gravação ao proprietário. A letra u representa o proprietário, g se refere ao grupo, o aos outros e a para todos. Em seguida, usamos +, - ou = para adicionar, remover ou definir explicitamente permissões para os usuários:

chmod u+rwx interfaces && chmod go-rwx interfaces

Screenshot №5 — Chmod simbólico

Também podemos usar o comando de igualdade:

chmod u=rwx, go= interfaces

Se quiser manter a permissão de gravação para outros e o grupo, mas proteger contra exclusão, use o comando abaixo:

chmod +t interfaces

Esses são os conceitos básicos de permissões no sistema. Mas e se precisarmos de mais controle?

Utilitário para controle adicional de permissões

No Linux, o kernel central fornece uma base sólida para o sistema operacional, mas ele não inclui todos os recursos possíveis por padrão. A necessidade de módulos e pacotes adicionais para o controle de acesso e permissões de arquivos é justificada para oferecer flexibilidade e customização ao sistema. Aqui estão alguns motivos para essa abordagem:

Como podemos ver, o sistema padrão de controle de acesso tem algumas limitações, como a falta de proteção contra exclusão acidental de arquivos importantes. Vamos melhorar o sistema!

Uso do Umask: O comando umask regula as permissões padrão para novos arquivos e diretórios. Ele subtrai a máscara especificada do valor máximo de permissão para definir as permissões padrão. Abaixo, podemos ver a lista de permissões padrão:

Screenshot №6 — Permissão padrão

Podemos ver a lista padrão de permissões para arquivos e alterá-la com o comando:

umask u=rwx,go=

Screenshot №7 — Umask

Essa solução ajuda temporariamente, mas para um funcionamento contínuo, é possível adicionar a configuração ao .bashrc ou bash_login.

Conclusão

A combinação de controles de acesso bem definidos, configurações precisas de permissões e a flexibilidade para adicionar ferramentas suplementares oferece aos administradores de sistema um ambiente seguro e personalizado para gerenciar arquivos e dados no ecossistema Linux.