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 | |
— | 000 | 0 | Permissão desabilitada |
–x | 001 | 1 | Execução (x) |
-w- | 010 | 2 | Escrita (w) |
-wx | 011 | 3 | Escrita (w) e Execução (x) |
r– | 100 | 4 | Leitura (r) |
r-x | 101 | 5 | Leitura (r) e Execução (x) |
rw- | 110 | 6 | Leitura (r) e Escrita (w) |
rwx | 111 | 7 | Leitura (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.
Um comentário em “Entendendo permissões de arquivos e diretórios no Linux”