Proprietário, grupo e permissões#
Antes de estudar chown, chgrp e chmod, é necessário compreender como o Linux associa arquivos a usuários e grupos.
Proprietário e grupo proprietário#
Cada arquivo possui, em condições usuais, um proprietário identificado por um UID (User Identifier) e um grupo proprietário identificado por um GID (Group Identifier).
O Linux utiliza esses identificadores numéricos para verificar a propriedade e aplicar as regras tradicionais de permissões. Os nomes apresentados por ls -l são obtidos a partir dos cadastros de usuários e grupos disponíveis ao sistema.
Por exemplo:
-rw-r----- 1 ana professores [...]
|\_/\_/\_/ | \_/ \_________/
1 2 3 4 5 6 7
Nesse exemplo:
anaé o usuário proprietário (6).professoresé o grupo proprietário (7).O proprietário tem permissão de leitura e escrita (2).
Os usuários pertencentes ao grupo professores têm permissão de leitura (3).
Os demais usuários não têm nenhuma dessas permissões sobre o arquivo.
O grupo proprietário não é necessariamente o único grupo ao qual o usuário pertence. Um usuário pode pertencer a diversos grupos, e sua associação aos grupos é considerada durante a verificação de acesso.
As três categorias de permissões#
O modelo tradicional de permissões divide os usuários em três categorias:
Símbolo |
Categoria |
Significado |
|---|---|---|
|
User |
Proprietário do arquivo |
|
Group |
Usuários que se enquadram no grupo proprietário |
|
Others |
Demais usuários |
|
All |
Todas as categorias: |
Cada categoria pode receber três permissões básicas:
Símbolo |
Nome |
Significado em arquivo regular |
Significado em diretório |
|---|---|---|---|
|
Read |
Ler o conteúdo |
Listar os nomes das entradas |
|
Write |
Modificar o conteúdo |
Criar, remover ou renomear entradas, conforme as demais condições de acesso |
|
Execute |
Executar o arquivo como programa, se aplicável |
Atravessar o diretório e acessar entradas por seus nomes |
A distinção entre arquivo e diretório é fundamental. Em um diretório, x significa permissão de travessia, e não execução de um programa. A remoção de um arquivo, por exemplo, depende principalmente das permissões no diretório que contém sua entrada, e não apenas das permissões do próprio arquivo.
As permissões tradicionais também não são a única camada possível de controle de acesso: ACLs (Access Control Lists), atributos de segurança e mecanismos como SELinux podem impor restrições adicionais.