Permissões
No Linux, as permissões são agrupadas em três atributos principais: leitura, gravação e execução (no caso de arquivos) ou listagem do conteúdo (no caso das pastas). Eles são representados, respectivamente pelas letras r,w, x.
As permissões são definidas de forma separada para o dono, o grupo (que inclui todos os usuários incluídos nele) e para os outros, ou seja, todos os demais usuários do sistema. Em geral, o dono tem acesso completo, o grupo tem permissões variáveis e os demais apenas podem ler os arquivos, sem fazer qualquer alteração.
A ideia básica da segurança no sistema GNU/Linux é definir o acesso aos arquivos por donos, grupos e outros usuários:
- Dono – É a pessoa que criou o arquivo ou o diretório. Normalmente, somente o dono pode modificar as permissões de acesso do arquivo. As permissões de acesso do dono de um arquivo somente se aplicam ao dono do arquivo/diretório. A identificação do dono também é chamada de user id (UID).
- Grupo – Permite que vários usuários diferentes tenham acesso a um mesmo arquivo mesmo não sendo dono daquele arquivo. Por padrão, quando um novo usuário é criado e não especificar nenhum grupo, ele pertencerá ao grupo de mesmo nome do seu usuário. A identificação do grupo é chamada de GID (group id). Um usuário pode pertencer a um ou mais grupos. outros
- Outros – É a categoria de usuários que não são donos ou não pertencem ao grupo do arquivo.
Quanto aos tipos de permissões que se aplicam ao dono, grupo e outros usuários, temos 3 permissões básicas:
- r – Permissão de leitura para arquivos. Caso for um diretório, permite listar seu conteúdo (através do comando ls, por exemplo).
- w – Permissão de gravação para arquivos. Caso for um diretório, permite a gravação de arquivos ou outros diretórios dentro dele. Para que um arquivo/diretório possa ser apagado, é necessário o acesso a gravação.
- x – Permite executar um arquivo (caso seja um programa executável). Caso seja um diretório, permite que seja acessado através do comando cd.
Verificando as Permissões
As permissões de acesso a um arquivo/diretório podem ser visualizadas com o uso do comando ls -l. As 3 letras (rwx) são agrupadas da seguinte forma:
drwxr-xr– root root teste
A primeira letra diz qual é o tipo do arquivo. Caso tiver um “d” é um diretório, um “l” um link a um arquivo no sistema, um “-“ quer dizer que é um arquivo comum, etc.
Da segunda a quarta letra (rwx) dizem qual é a permissão de acesso ao dono do arquivo. Neste caso root ele tem a permissão de ler (r – read), gravar (w – write) e executar (x – execute) o arquivo computadores.
Da quinta a sétima letra (r-x) diz qual é a permissão de acesso ao grupo do arquivo. Neste caso todos os usuários que pertencem ao grupo root tem a permissão de ler (r), e também executar (x) o arquivo teste. Lembre-se que quanto um usuário é criado, um grupo com o nome do usuário também é criado. Isso explica o fato do “root root”, que indica que o arquivo pertence ao usuário root e ao grupo root.
Da oitava a décima letra (r–) diz qual é a permissão de acesso para os outros usuários. Neste caso todos os usuários que não são donos do arquivo teste tem a permissão somente para ler (r) o arquivo.
O primeiro root indica o nome do dono do arquivo.
O segundo root indica o nome do grupo que o arquivo pertence.
A palavra teste indica o nome da pasta.
Ajustando as Permissões
Para ajustar as permissões de acesso de um arquivo/diretório, utilizamos os comandos chmod e chown. O primeiro permite ajustar as permissões de arquivos e pastas, enquanto o segundo permite transferir a posse, dizendo a qual usuário e a qual grupo determinada pasta ou arquivo pertence.
Para que os usuários do grupo professores possam alterar o conteúdo da pasta, o primeiro passo é alterar as permissões, transferindo a posse do grupo root para o grupo professores. Nesse caso, não precisamos alterar o dono da pasta, que pode continuar sendo o root.
# chown –R root:professores teste
O –R no exemplo faz com que a alteração seja aplicada de forma recursiva, afetando todos os arquivos e subpastas. Sem ele, a alteração seria aplicada apenas a pasta propriamente dita, mas não ao seu conteúdo. Em seguida, especificamos o novo dono e o novo grupo, separados por : seguido da pasta. Com isso as permissões serão alteradas para:
drwxr-xr– root professores teste
Falta agora alterar as permissões de acesso para o grupo, de forma que os usuários possam finalmente escrever na pasta. Para isso, usamos o comando chmod –R g+rw, que especifica que o grupo (g) terá permissão de leitura e escruta (+rw):
chmod –R g+rw teste
Se você quisesse fazer o oposto, ou seja, remover a permissão de escrita para o grupo, usaria o chmod –R g-w teste, se quisesse remover a permissão de leitura para todos os demais usuários usaria o chmod –R o-r e, se quisesse abrir as permissões para todo mundo, usaria o chmod –R ugo+rwx.
Abaixo, segue uma pequena “cola” com os parâmetros:
- -R: Recursivo, altera as permissões de todo o conteúdo da pasta, opcional.
- u: Permissões para o dono da pasta (user)
- g: Permissões para o grupo (group)
- o: Permissões para os demais (others)
- +: Adiciona a permissão
- -: Remove a permissão
- r: Permissão de leitura
- w: Permissão de gravação
- x: No caso dos arquivos indica permissão de escrita e, no caso da pasta, permissão para ver o conteúdo.
Modo Octal
Ao invés de utilizar os modos de permissão +r, -r, etc, pode ser usado o modo octal para se alterar a permissão de acesso a um arquivo. O modo octal é um conjunto de oito números onde cada número define um tipo de acesso diferente.
O uso de um destes números define a permissão de acesso do dono, grupo ou outros usuários. Um modo fácil de entender como as permissões de acesso octais funcionam, é através da seguinte tabela:
- 1 = Executar
- 2 = Gravar
- 4 = Ler
A soma desses números define as permissões concedidas.
É mais flexível gerenciar permissões de acesso usando o modo octal ao invés do comum, pois você especifica diretamente a permissão do dono, grupo, outros ao invés de gerenciar as permissões de cada um separadamente. Abaixo a lista de permissões de acesso octal:
- 0 – Nenhuma permissão de acesso. Equivalente a -rwx.
- 1 – Permissão de execução (x).
- 2 – Permissão de gravação (w).
- 3 – Permissão de gravação e execução (wx). Equivalente a permissão 2+1
- 4 – Permissão de leitura (r).
- 5 – Permissão de leitura e execução (rx). Equivalente a permissão 4+1
- 6 – Permissão de leitura e gravação (rw). Equivalente a permissão 4+2
- 7 – Permissão de leitura, gravação e execução. Equivalente a +rwx (4+2+1).
Vamos à prática com alguns exemplos:
# chmod 764 teste
Os números são interpretados da direita para a esquerda como permissão de acesso aos outros usuários (4), grupo (6), e dono (7). O exemplo acima faz os outros usuários (4) terem acesso somente leitura (r) ao arquivo teste, o grupo (6) ter a permissão de leitura e gravação (rw), e o dono (7) ter permissão de leitura, gravação e execução (rwx) ao arquivo teste.
# chmod 40 teste
O exemplo acima define a permissão de acesso dos outros usuários (0) como nenhuma, e define a permissão de acesso do grupo (4) como somente leitura (r). Note usei somente dois números e então a permissão de acesso do dono do arquivo não é modificada (leia as permissões de acesso da direita para a esquerda!).
# chmod 751 teste
O exemplo acima define a permissão de acesso dos outros usuários (1) para somente execução (x), o acesso do grupo (5) como leitura e execução (rx) e o acesso do dono (7) como leitura, gravação e execução (rwx).
Referências: Guia Foca GNU/Linux e Guia do Hardware
Confira mais em: www.techlivre.com.br
2 Comentários
Obrigado Ítalo,
finalmente tirei todas as dúvidas sobre o assunto.
Muito bom, agora eu entendi o comando octal.