Cada arquivo e diretório em um sistema
Linux possui um conjunto de permissões e propriedades integradas a ele. É através disso que o sistema sabe quem pode mexer em qual arquivo, quando o arquivo foi modificado etc.
Neste artigo falarei sobre como distinguir níveis e tipos de permissão em arquivos e diretórios, utilizar os comando chmod e chown para modificar propriedades e permissões, distinguir os modos octal e textual para os parâmetros dos comandos de mudança de permissões, entender o que é máscara de um arquivo e como modificá-la, entender e utilizar permissões especiais, como stick bit e suid bit.
Conceito de permissão
O Linux é um sistema multi-usuário. É necessário ter uma conta de acesso para utilizá-lo.
Além da autenticação para acesso ao sistema, uma outra funcionalidade relativa aos conceitos de usuários e grupos é o de permissões de arquivos, onde é definido quem pode acessar bem como quais arquivos e diretórios.
O sistema que arquivos do Linux possibilita que sejam atribuídos direitos de acesso diferenciados para os usuários do sistema. A cada arquivo ou diretório do sistema é associado um proprietário, um grupo e seus respectivos direitos de acesso, ou permissões.
Cada arquivo/diretório possui três níveis de permissão
1) usuário dono - também chamado de "owner", é o proprietário do arquivo/diretório;
2) grupo dono - é o grupo proprietário do arquivo/diretório. O grupo pode conter um usuário (geralmente o usuário dono) ou vários usuários;
3) outros - aplica-se a qualquer outro usuário, que não se encaixa nos níveis anteriores.
E para cada nível de permissão, existem três tipos de permissão
1) leitura (r) - permissão para visualizar o conteúdo do arquivo, simbolizada por "r" (do inglês read).
2) escrita (w) - permissão para alterar o conteúdo do arquivo, simbolizada por "w" (do inglês write).
3) execução (x) - permissão para executar o arquivo, simbolizada por "x" (do inglês execution).
A combinação dos níveis de permissão com os tipos de permissão forma o conjunto de propriedades para cada arquivo ou diretório.
Estas propriedades são atribuídas com o objetivo de determinar quem pode acessá-lo, ler seu conteúdo ou mesmo executar algum programa.