Entendendo permissões de arquivos e diretórios no Linux

Neste artigo, vou apresentar de modo básico permissões de arquivos e diretórios no Linux. As permissões de acesso, protegem os arquivos e diretórios do acesso não autorizado de pessoas ou programas. As permissões de acesso no Linux, impedem que alguém mal intencionado, exclua um arquivo que não deve ou mesmo faça o envio de arquivos sensíveis para outras pessoas.

No Linux o acesso aos arquivos e diretórios é definido por donos, grupos e outros usuários.

Dono

É o usuário que criou o arquivo ou diretório. Somente o dono do arquivo ou o usuário root pode modificar suas permissões de acesso.

Grupo

Um usuário pode estar em um ou mais grupos. Assim caso o grupo tenha permissões de acesso ao arquivo ou diretório, todos os usuários que pertençam ao grupo também terão permissão.

Outros Usuários

É um usuário que não é dono e nem mesmo pertence ao grupo do arquivo.

Tipos de permissões

Existem 3 tipos de permissões básicas para arquivos e diretórios.

  • r – Permissão de leitura.  (read)
  • w – Permissão de gravação (write)
  • x – Permissão de execução (caso seja um programa executável). (execution)

Para visualizarmos as permissões de arquivos no terminal do Linux utilize o comando: ls -la.

$ ls -l
total 0
-rwxrw-r-- 1 anderson anderson 0 set  4 18:28 teste1.txt
-rw-rw-r-- 1 anderson www-data 0 set  4 18:28 teste2.txt
-rw-rw-r-- 1 root     root     0 set  4 18:28 teste3.txt

O comando ls realiza a listagem dos arquivos de um diretório. Na primeira coluna, temos o conjunto de permissões de um arquivo.

rwxrw-r--
rw-rw-r-- 
rw-rw-r-- 

Acima as permissões são apresentadas seguindo a ordem: Leitura, gravação e execução  (rwx). Onde a permissão está desabilitada temos: “”. Como é apresentado acima, aparece a permissão junta na ordem: dono, grupo e outros usuários.

Por exemplo nesta permissão temos:

rwxrw-r--

Os três primeiros caracteres são referentes ao dono.

rwx

Ou seja neste caso o dono do arquivo tem permissão de leitura (read), escrita (write) e execução (execution) no arquivo. Os próximos três caracteres são referentes ao grupo.

rw-

Assim o grupo ou seja todos os usuários que estão no grupo, tem permissão de leitura (read) e escrita (write) no arquivo. Neste exemplo o grupo não possui a permissão de execução (execution), já que esta permissão está desabilitada para ele. Podemos ver isso pois ele apresenta o – ao invés de um carácter. Os últimos três caracteres são referentes aos outros usuários.

r--

Com isso os outros usuários têm permissão de leitura (read) no arquivo e mais nenhuma outra, pois neste exemplo apresenta o no lugar dos outros dois caracteres.

As permissões também podem ser apresentadas de forma numérica. A representação numérica também segue esta mesma lógica. Abaixo uma tabela que apresenta as permissões na representação numérica.

Permissão Binário Decimal
0000Permissão desabilitada
–x0011Execução (x)
-w-0102Escrita (w)
-wx0113Escrita (w) e Execução (x)
r–1004Leitura (r)
r-x1015Leitura (r)  e Execução (x)
rw-1106Leitura (r) e Escrita (w) 
rwx1117Leitura (r), Escrita (w) e Execução (x)

Para alterar a permissão de um arquivo no terminal do Linux utilize o comando: chmod.

$ chmod 664 teste1.txt

Depois visualize com o comando:

$ ls -l
total 0
-rw-rw-r-- 1 anderson anderson 0 set  4 18:28 teste1.txt
-rw-rw-r-- 1 anderson www-data 0 set  4 18:28 teste2.txt
-rw-rw-r-- 1 root     root     0 set  4 18:28 teste3.txt

Acima com o comando chmod alteramos a permissão do arquivo teste1.txt para 664 escrito na representação decimal ou seja:

rw-rw-r-- 

Como vimos representa que o dono tem permissão de Leitura (r) e Escrita (w). O grupo tem permissão de Leitura (r) e Escrita (w). E os outros usuários têm permissão de Leitura (r).

O comando ls -l também retorna o nome do dono do arquivo e do grupo do arquivo ou diretório.

$ ls -l
total 0
-rw-rw-r-- 1 anderson anderson 0 set  4 18:28 teste1.txt
-rw-rw-r-- 1 anderson www-data 0 set  4 18:28 teste2.txt
-rw-rw-r-- 1 root     root     0 set  4 18:28 teste3.txt

Acima ele apresenta logo após as permissões o dono e o grupo. No primeiro arquivo teste1.txt o dono do arquivo é o usuário anderson e o grupo em que o arquivo está é o grupo anderson. No segundo arquivo teste2.txt o dono do arquivo é o usuário anderson e o grupo em que o arquivo está é o grupo www-data. No terceiro arquivo teste3.txt o dono do arquivo é o usuário root e o grupo em que o arquivo está é o grupo root.  Para alterar um arquivo de grupo ou de usuário utilize o comando: chown.

$ sudo chown anderson:www-data teste1.txt

Utilizamos o sudo na frente do comando pois este comando precisa de ser executado como administrador. Logo após o comando colocamos o usuário seguido do grupo e no fim o arquivo: chown usuario:grupo arquivo

Com isso concluímos este breve resumo sobre permissões de arquivos e diretórios no Linux. Veja o artigo: Como criar um usuário no Linux pelo terminal onde eu apresento como criar um usuário no Linux e o adicionar a um grupo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *