Muitos estão acostumados apenas a usar o Windows, e ao se deparar com um Linux ficam confusos em relação aos arquivos e suas permissões.

A primeira coisa a ter em mente é que no Linux o conceito de usuários e grupos é total e completamente integrado ao sistema. No Windows isso é um mistério para a maioria dos usuários (no sentido de não terem noção sequer da sua existência, mas estão lá sim).

Para entender vamos dar um exemplo. Ao dar o comando ls -l num diretório você verá todo o seu conteúdo e as propriedades dos arquivos:

~ $ ls -l
drwxr-xr-x    4 user     users        4096 Oct 19 19:22 Instinctiv
drwxrwxrwx   34 user     users        4096 Oct 28 00:56 MyDocs
drwxr-xr-x    2 user     users        4096 Aug  2 15:23 NProfile
drwxr-xr-x    2 user     users        4096 Oct  1 17:26 Panorama_thumbs
-rw-r--r--    1 root     root         4521 Oct 28 19:50 Xorg.0.log
-rw-r--r--    1 user     users       11832 Oct 22 18:28 applet1.png
-rw-r--r--    1 user     users        6683 Oct 22 18:28 applet2.png
-rw-r--r--    1 user     users          86 Oct 22 18:28 applet3.png
drwxr-xr-x    3 user     users        4096 Jun 12 16:43 apps
-rwxr-xr-x    1 user     users          75 Oct 11 20:21 autouphoto.sh
-rw-r--r--    1 user     users        9554 Oct 21 22:14 book1.png
-rw-r--r--    1 user     users       23638 Oct 21 22:14 book2.png
-rw-r--r--    1 user     users       13169 Oct 21 22:14 bookmask1.png
-rw-r--r--    1 user     users       16384 Oct 28 19:52 fuelpad.db
drwxrwxrwx    2 root     root         4096 Sep  6 23:37 kroll
-rw-r--r--    1 root     root            0 Oct 28 19:51 qld.log
~ $ 

A primeira coluna informa as permissões e também alguns atributos do arquivo/diretório. A primeira letra indica o que a entrada é:
d -> diretório
l -> link
- -> arquivo

Há outras possibilidades, mas essas são as mais comuns. Os 9 códigos seguintes são, na verdade, 3 blocos de 3 códigos. Estes são os códigos possíveis de aparecer:
- -> sem permissão
w -> permissão de escrita
r -> permissão de leitura
x -> permissão de execução

Cada um dos 3 blocos determina as permissões para o usuário “dono” do arquivo, para o grupo ao qual o arquivo pertence, e para todos os usuários.

A terceira coluna do ls -l mostra qual é o usuário dono do arquivo, enquanto que a quarta coluna mostra o grupo. Qualquer usuário que pertença a esse grupo tem essas permissões. E se o usuário que tenta fazer algo com o arquivo/diretório não é o dono do arquivo nem pertence ao grupo, as permissões do terceiro grupo são aplicadas.

No exemplo acima o Xorg.0.log é um arquivo, pertencente ao usuário root e grupo root. Esse usuário pode ler e escrever o/no arquivo (primeiro subconjunto indicando “rw-”). Quem pertence ao grupo pode ler apenas (o “r–”). E os outros usuários também podem apenas lê-lo (o último “r–”).

O autouphoto.sh é um arquivo do usuário user, grupo users. O usuário user pode ler, escrever e executar o arquivo (“rwx”). Quem pertence ao grupo users pode ler e executar. E os outros também podem ler e executar.

Aqui alguns exemplos:
1) drwxrwxrwx: é um diretório onde todos os usuários e todos os grupos tem todas as permissões
2) -rw-r—–: é um arquivo, onde o usuário tem permissão de leitura e escrita, os integrantes do grupo tem permissão de leitura e os outros usuários não tem permissão alguma
3) -rwxr-xr–: é um arquivo que pode ser lido, escrito e executado pelo usuário, lido e executado pelo grupo e somente lido por todos os outros usuários

Importante lembrar que o fato de um arquivo poder ser lido por qualquer um não vai adiantar nada se o diretório onde esse arquivo está também não o for! Afinal de contas, para chegar ao arquivo primeiro preciso chegar ao diretório.

Como já pôde ser notado, o que determina que um arquivo pode ser executado é uma permissão dele, não a sua extensão.

Para mexer com as permissões há dois comandos: chown e chmod. O primeiro serve para alterar os “donos” do arquivo (change owner), e o segundo é para alterar as permissões (change mode).

Aqui é um bom lugar para aprender a usar o chmod (com mais dicas aqui).

Já como usar o chown pode ser visto aqui.

Só para complementar, na listagem acima as 3 últimas colunas mostram o tamanho do arquivo (se for um diretório terá tamanho fixo), a data de última alteração e, obviamente, o nome.

E os arquivos ocultos? Arquivos ocultos no Linux são todos aqueles que tem seu nome iniciado por um ponto. O mesmo se aplica para diretórios. Para vê-los basta usar a opção “a” no comando ls:

ls -a