As permissões são um dos aspectos mais importantes do Linux (na verdade, de todos os sistemas baseados em Unix). Elas são usadas para vários fins, mas servem principalmente para proteger o sistema e os arquivos dos usuários. Manipular permissões é uma atividade interessante, mas complexa ao mesmo tempo.
Entendendo as permissões
drwx------ ... 2 wester ............. 512 Jan ... 29 23:30 .. Arquivos/
-rw-rw-r-- ... 1 wester ....... 280232 Dec .. 16 22:41... notas.txt
As linhas acima representam um comando digitado (ls -l) para listar um diretório e suas permissões. O primeiro item que aparece em cada linha (drwx----- e -rw-rw-r-) é a forma usada para mostrar as permissões do diretório Arquivos e do arquivo notas.txt. É esse item, que recebe o nome de string, que vamos estudar. Um ponto interessante de citar é que o Linux trata todos os diretórios como arquivos também, portanto, as permissões se aplicam de igual forma para ambos. Tais permissões podem ser divididas em quatro partes para indicar: tipo, proprietário, grupo e outras permissões. O primeiro caractere da string indica o tipo de arquivo: se for "d" representa um diretório, se for "-" equivale a um arquivo. Entretanto, outros caracteres podem aparecer para indicar outros tipos de arquivos, conforme mostra a tabela abaixo:
d => diretório
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
s => socket
- => arquivo "normal"
Repare agora que no restante da string ainda há 9 caracteres. Você já sabe o que significa o primeiro. Os demais são divididos em três grupos de três, cada um representado o proprietário, o grupo e todos os demais, respectivamente. Tomando a linha 2 do exemplo (-rw-rw-r-), desconsiderando o primeiro caractere e dividindo a string restante em 3 partes, ficaria assim:
rw- => a primeira parte significa permissões do proprietário
rw- => a segunda parte significa permissões do grupo ao qual o usuário pertence
r-- => a terceira parte significa permissões para os demais usuários
Agora que já sabemos o significado das divisões da string, vamos entender o que as letras r, w, x e o caractere - representam:
r => significa permissão de leitura (read);
w => significa permissão de gravação (write);
x => significa permissão de execução (execution);
- => significa permissão desabilitada.