31.01.2025

Permissões de arquivo no Linux

Introdução

O controle de acesso e permissão para arquivos serve a propósitos críticos no âmbito do gerenciamento e da segurança de dados:

Em resumo, o controle de acesso e permissão é fundamental para manter a segurança, a confidencialidade e a solidez de arquivos e dados. Eles impedem o acesso não autorizado, evitam violações e perdas de dados e contribuem para a conformidade normativa.

Requisitos

Permissão e atributos no Linux

No ambiente Linux, o gerenciamento de arquivos e permissões é um processo minucioso e intrincado, projetado para garantir o máximo de segurança e precisão no manuseio de dados. Aqui está uma visão mais detalhada. O Linux reconhece um espectro de tipos de arquivos, incluindo arquivos comuns, diretórios, links simbólicos e dispositivos. Cada tipo possui atributos e permissões exclusivos. No Debian 12, podemos verificar todos os atributos e permissões de todos os usuários com o comando abaixo:

ls -l

Screenshot №1 - List of permission

Mas se quisermos verificar determinado arquivo, precisamos usar o comando abaixo, indicando o arquivo que você deseja verificar:

ls -l /etc/network/interfaces

Screenshot №2 - Single file

Vamos ser claros e explicar cada parâmetro dessa tela:

Cada arquivo é vinculado a um usuário individual (proprietário) e a um grupo designado. O ato de criar um arquivo estabelece o criador como seu proprietário, enquanto um grupo específico é atribuído ao arquivo. O Linux segmenta as permissões em três categorias: usuário, grupo e outros. A cada categoria podem ser atribuídas permissões distintas de leitura, gravação e execução. E podemos alterar tudo isso se tivermos permissão correta e direta para isso por meio do utilitário chmod.

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

chmod 755 interfaces

Screenshot №3 - Chmod numeric

Mas se quisermos negar todas as permissões a todos os tipos de usuários, precisaremos escrever o comando abaixo:

chmod 000 interfaces

Screenshot №4 - Chmod numeric deny

O comando chmod serve para modificar as permissões. Esse comando aceita notações simbólicas e numéricas. Por exemplo, chmod u+w nome do arquivo confere permissão de gravação ao proprietário. O u significa proprietário, g atribui ao grupo, o para outros e a para todos . Em seguida, indicamos + ou - ou = para adicionar, excluir, indicar explicitamente a permissão para os usuários:

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

Screenshot №5 - Chmod symbolic

Ou podemos usar o comando equal:

chmod u=rwx, go= interfaces

Se quiser salvar a permissão de gravação de outros usuários e de grupos, mas precisar protegê-los contra exclusão, use o comando abaixo:

chmod +t interfaces

Isso é o básico da permissão no sistema, mas e se precisarmos de mais?

Utilidade para permissão de controle adicional

No Linux, o núcleo principal fornece uma base sólida para o sistema operacional, mas não inclui todos os recursos e funcionalidades possíveis por padrão. O motivo pelo qual são necessários módulos e pacotes adicionais para controlar o acesso e as permissões de arquivos é dar aos administradores de sistema e aos usuários a flexibilidade de adaptar o comportamento do sistema às suas necessidades específicas. Aqui estão alguns motivos pelos quais essa abordagem é adotada:

Como você pode destacar, o sistema de controle de acesso padrão tem várias deficiências: não há proteção do sistema contra exclusão aleatória de arquivos significativos, integridade do sistema de arquivos etc. Vamos atualizar o sistema!

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

Screenshot №6 - Default permission

Você pode ver a lista padrão de permissões para o arquivo, vamos alterá-la:

umask u=rwx,go=

Screenshot №7 - Umask

Essa solução ajudará por algum tempo antes de você desligar a máquina ou a conexão; para trabalhar por mais tempo com o sistema, você pode adicionar o .bashrc ou o bash_login raw necessário!

Conclusão

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