Como modificar permissões no Linux usando linha de comando
Confira esse guia básico de como ajustar permissões de leitura, escrita e execução para arquivos e diretórios no Linux pelo terminal
Atualizado em
Em sistemas operacionais baseados em Linux, a gestão de permissões é um aspecto fundamental para garantir a segurança e o funcionamento correto do sistema. Cada arquivo e diretório possui permissões específicas que controlam quem os pode ler, escrever ou executar.
As permissões são divididas em três categorias principais: proprietário, grupo e outros. Cada uma dessas categorias pode ter três tipos de permissões: leitura (r), escrita (w) e execução (x).
- Leitura (r): Permite visualizar o conteúdo do arquivo ou listar os arquivos de um diretório.
- Escrita (w): Permite modificar o conteúdo de um arquivo ou adicionar/remover arquivos em um diretório.
- Execução (x): Permite executar o arquivo, se ele for um script ou programa, ou acessar um diretório.
Modificando permissões
O comando chmod
é utilizado para alterar as permissões de arquivos e diretórios. A sintaxe básica do comando é:
chmod [opções] [permissões] [arquivo|diretório]
As permissões podem ser definidas de duas maneiras: numérica e simbólica.
Usando a notação numérica
Na notação numérica, as permissões são representadas por números, onde cada tipo de permissão tem um valor específico:
- Leitura (r) = 4
- Escrita (w) = 2
- Execução (x) = 1
Para definir as permissões, somam-se os valores correspondentes. Por exemplo, para definir permissões completas (leitura, escrita e execução) para o proprietário, usamos 7 (4+2+1). Para aplicar essas permissões a um arquivo:
chmod 700 arquivo.txt
Neste exemplo, o proprietário tem permissões completas, enquanto grupo e outros não têm nenhuma permissão.
Usando a notação simbólica
Na notação simbólica, utilizam-se caracteres para adicionar ou remover permissões. Por exemplo, para adicionar permissão de execução para o proprietário:
chmod u+x arquivo.txt
Aqui, u
representa o proprietário (user), +
adiciona a permissão e x
é a permissão de execução.
Exemplos práticos de alteração de permissões
Vamos ver alguns exemplos práticos de como modificar permissões:
-
Permitir leitura e escrita para o proprietário, e leitura para grupo e outros:
chmod 644 arquivo.txt
Neste caso, o proprietário pode ler e escrever no arquivo, enquanto grupo e outros podem apenas ler.
-
Permitir execução para todos:
chmod +x script.sh
Esse comando torna o arquivo executável por qualquer usuário.
-
Remover permissão de escrita para outros:
chmod o-w arquivo.txt
Aqui, removemos a permissão de escrita para outros usuários, deixando apenas leitura e execução (se aplicável).
-
Permitir leitura, escrita e execução para o proprietário, e apenas leitura para grupo e outros:
chmod 744 programa
O proprietário tem todas as permissões, enquanto grupo e outros têm apenas permissão de leitura.
-
Permitir leitura e execução para todos, mas escrita apenas para o proprietário:
chmod 755 aplicativo
O proprietário pode ler, escrever e executar, enquanto grupo e outros podem apenas ler e executar.
Melhores práticas ao gerenciar permissões
Mínima permissão necessária
Sempre atribua a menor permissão necessária para um usuário ou grupo desempenhar suas funções. Evite permissões excessivas que possam comprometer a segurança do sistema. Por exemplo, se um usuário precisa apenas ler um arquivo, não conceda permissões de escrita ou execução.
Exemplo: Se um arquivo relatorio.txt
precisa ser lido por um usuário chamado joao
, você pode definir as permissões de forma que apenas o dono e o grupo tenham permissão de leitura:
chmod 640 relatorio.txt
chown joao:grupo_usuarios relatorio.txt
Revisão regular
Revise regularmente as permissões customizadas dos arquivos e diretórios para garantir que estejam corretas e atualizadas, especialmente após mudanças significativas no sistema ou nos usuários. Crie uma rotina mensal para verificar e ajustar as permissões conforme necessário.
Exemplo: Use comandos como find
para identificar arquivos com permissões abertas demais e revisar as configurações:
find /caminho/para/diretorio -perm -o=w
Uso de grupos
Utilize grupos para gerenciar permissões de forma mais eficiente. Em vez de atribuir permissões a cada usuário individualmente, adicione-os a grupos com permissões apropriadas. Isso simplifica a administração e reduz a chance de erros.
Exemplo: Para um grupo desenvolvedores
que precisa de acesso de leitura e escrita a um diretório projetos
, você pode configurar assim:
groupadd desenvolvedores
usermod -aG desenvolvedores joao
chown -R :desenvolvedores /caminho/para/projetos
chmod -R 770 /caminho/para/projetos
Atenção aos scripts
Scripts e programas executáveis devem ter permissões adequadas para evitar a execução não autorizada. Use chmod +x
com cautela e revise o código dos scripts, principalmente os baixados de fontes não confiáveis, antes de torná-los executáveis. Isso evita que scripts maliciosos ou com bugs comprometam o sistema.
Exemplo: Antes de tornar um script backup.sh
executável, verifique seu conteúdo e depois ajuste as permissões:
chmod +x backup.sh
Backups regulares
Mantenha backups regulares dos arquivos e diretórios críticos. Isso garante que você possa restaurar dados em caso de alterações acidentais nas permissões ou em situações de emergência. Utilize ferramentas de backup automáticas para simplificar esse processo.
Exemplo: Configure um cron job para realizar backups diários de um diretório importante:
0 2 * * * tar -czf /caminho/para/backup/backup-$(date +\%F).tar.gz /diretorio/importante
Seguindo essas práticas, você pode garantir um gerenciamento mais seguro e eficiente das permissões no seu sistema, minimizando riscos e facilitando a administração.