Permissoes de acesso a arquivos e diretorios: mudanças entre as edições
(26 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 20: | Linha 20: | ||
*'''Execução''' (''e'''X'''ec'') de arquivo (caso seja executável) ou de entrar para dentro do diretório (por exemplo com cd). | *'''Execução''' (''e'''X'''ec'') de arquivo (caso seja executável) ou de entrar para dentro do diretório (por exemplo com cd). | ||
==Exibição das permissões de acesso== | |||
;Comando ls -l: Quando executamos este comando em um diretório qualquer, os arquivos e sub-diretórios são listados com as permissões de acesso correspondentes. Por exemplo: | ;Comando ls -l: Quando executamos este comando em um diretório qualquer, os arquivos e sub-diretórios são listados com as permissões de acesso correspondentes. Por exemplo: | ||
Linha 29: | Linha 29: | ||
:As colunas que aparecem na listagem são: | :As colunas que aparecem na listagem são: | ||
:#Esquema de permissões (-rw-r-----); | :#Esquema de permissões (-rw-r-----); | ||
:#Número de ligações do arquivo ou diretório; | :#Número de ligações do arquivo ou diretório (ou número de '''inodes'''); | ||
:#Dono do arquivo; | :#Dono do arquivo; | ||
:#Grupo do dono do arquivo; | :#Grupo do dono do arquivo; | ||
Linha 36: | Linha 36: | ||
:#Nome do arquivo. | :#Nome do arquivo. | ||
; | ;inode: Um '''inodes''' é uma estrutura responsável por conter informações básicas sobre seus arquivos e pastas, como permissões de acesso, identificação dos donos dos arquivos, data e hora do último acesso e alterações, tamanho e o mais importante, os famosos ponteiros para o arquivo em si. | ||
:O parâmetro -i mostra os números de inodes dos arquivos e diretórios: | |||
ls -il | |||
==Esquema de permissões== | |||
O esquema de permissões usa 10 caracteres, o primeiro identifica o '''tipo''' ('''-''' arquivo; '''d''' diretório; '''l''' ''link''; ...) e os outros 9 formam 3 grupos de 3 caracteres que mostram as '''permissões''' ('''r''' leitura; '''w''' escrita; '''x''' execução) para o '''dono''', '''grupo''' e '''outros'''. | |||
Por exemplo, analisando a primeira da saída do comando '''ls -l''' acima, referente ao arquivo Modelo-PlanoEnsino.odt. temos: | |||
*'''dono''' possui permissão de leitura e escrita ('''r w -'''); | |||
*'''grupo''' possui permissão de leitura ('''r - -'''); | |||
*'''outros''' não possuem permissões sobre o arquivo ('''- - -'''). | |||
===Alteração das permissões de acesso=== | ===Alteração das permissões de acesso=== | ||
Linha 53: | Linha 58: | ||
{| border="1" cellpadding="2" style="text-align: center;" | {| border="1" cellpadding="2" style="text-align: center;" | ||
!Octal | !Octal | ||
!Binário | |||
!Permissões | !Permissões | ||
|- | |- | ||
|0 || - - - | |0 || 000 || - - - | ||
|- | |- | ||
|1 || - - x | |1 || 001 || - - x | ||
|- | |- | ||
|2 || - w - | |2 || 010 || - w - | ||
|- | |- | ||
|3 || - w x | |3 || 011 || - w x | ||
|- | |- | ||
|4 || r - - | |4 || 100 || r - - | ||
|- | |- | ||
|5 || r - x | |5 || 101 || r - x | ||
|- | |- | ||
|6 || r w - | |6 || 110 || r w - | ||
|- | |- | ||
|7 || r w x | |7 || 111 || r w x | ||
|- | |- | ||
|} | |} | ||
Linha 101: | Linha 107: | ||
ls -l | ls -l | ||
- | -rwxrw-rw- 1 evandro evandro 87475 Jun 11 18:07 netkit2-installer | ||
:Acrescenta ao grupo e outros ('''go+''') permissões de leitura e execução ('''rw'''). | :Acrescenta ao grupo e outros ('''go+''') permissões de leitura e execução ('''rw'''). | ||
Linha 113: | Linha 119: | ||
umask 777 | umask 777 | ||
:Usuário, grupo e outros não terão nenhuma permissão sobre novos arquivos criados. Seria equivalente a chmod 000. | :Usuário, grupo e outros não terão nenhuma permissão sobre novos arquivos criados. Seria equivalente a chmod 000. | ||
umask 000 | |||
:Usuário, grupo e outros terão permissão de leitura, escrita e execução sobre novos arquivos criados. Seria equivalente a chmod 777. | :Usuário, grupo e outros terão permissão de leitura, escrita e execução sobre novos arquivos criados. Seria equivalente a chmod 777. | ||
umask 022 | umask 022 | ||
:Usuário terá permissão de leitura, escrita e execução e o grupo e outros terão permissão de leitura e execução sobre novos arquivos criados. Seria equivalente a chmod 755. Este é o modo padrão para criação de arquivos e diretórios no Linux. | :Usuário terá permissão de leitura, escrita e execução e o grupo e outros terão permissão de leitura e execução sobre novos arquivos criados. Seria equivalente a chmod 755. Este é o modo padrão para criação de arquivos e diretórios no Linux. | ||
; | ;Alteração permanente da máscara umask para um usuário: Deve editar o arquivo '''.profile''' e redefinir o valor de '''umask'''. | ||
;Alteração permanente da máscara umask na criação de novos usuários: Deve editar o arquivo '''/etc/login.defs''' e redefinir o valor de '''umask'''. | |||
:*A mascara 022 é o padrão histórico do umask para o Debian; | |||
:*As máscaras 027 ou 077 são padrões melhores de privacidade. | |||
===Modificando o dono e o grupo de um arquivo=== | ===Modificando o dono e o grupo de um arquivo=== | ||
Linha 126: | Linha 136: | ||
;Comando chgrp: Modifica o '''grupo''' de um arquivo. | ;Comando chgrp: Modifica o '''grupo''' de um arquivo. | ||
chgrp novo_grupo arquivo | chgrp novo_grupo arquivo | ||
<!--==Exercícios sobre permissões de acesso== | |||
Acesse um terminal Linux para realizar os exercícios: | |||
#Execute o comando '''whoami''' e verifique o usuário logado no sistema. | |||
#Execute o comando '''pwd''' e verifique o diretório corrente do usuário logado. | |||
#Execute o comando '''cd .. ''', mudando para o diretório /home. Em seguida execute o comando '''ls -l''' e verifique o esquema de permissões do seu diretório pessoal. Explicar o esquema de permissões. | |||
#Volte para o seu diretório pessoal com o comando '''cd'''. | |||
#Crie um arquivo no seu diretório pessoal, chamado '''publico''', e modifique as permissões com o comando '''chmod''', de modo que o '''dono''' e o '''grupo''' possam '''ler''' e '''escrever'''. | |||
#Edite este arquivo com o editor '''nano''' e inclua seu nome, data e cidade de nascimento. Em seguida, solicite que um colega da turma para, a partir da conta dele, também editar este arquivo e incluir seus dados. | |||
#Verifique o esquema de permissões do diretório '''Brasil''', criado no exercício da aula anterior. | |||
#Modifique as permissões do diretório '''Brasil''', usando o comando '''chmod''', de modo que somente o '''dono''' possa '''ler, escrever e executar'''. O '''grupo''' e os '''outros''' não podem ter nenhum acesso.--> | |||
==Tarefa== | |||
Criar '''diretórios compartilhados''' para os usuários dos '''grupos primários''', '''secundários''' e para uso '''público'''. | |||
Alocar os diretórios num diretório '''/dados''', a ser criado na raiz do sistema: | |||
/dados/professores | |||
/dados/alunos | |||
/dados/publico | |||
/dados/arduino | |||
/dados/... | |||
;Permissões: Definir para os diretórios as seguintes permissões: | |||
:*Diretório '''/home''' do usuário: Leitura, Escrita e Execução somente para o '''dono''' do diretório; | |||
:*Diretórios dos grupos '''primário e secundário''': Leitura, Escrita e Execução para o '''dono''' e '''grupo''' do diretório; | |||
:*Diretório '''publico''': Leitura, Escrita e Execução para o '''todos'''. | |||
Verifique a permissão padrão do diretório '''home''' que está sendo utilizada quando um usuário é criado. Utilize o comando '''umask''' para que novos usuários fiquem com a permissão indicada. | |||
Testar as permissões de acesso com diferentes tipos de usuário. | |||
Uma vez que um usuário cria um arquivo em um diretório compartilhado, ele pode atualizar a permissão de forma que somente ele tenha acesso a escrita, evitando que o arquivo seja apagado ou modificado por outro usuário. | |||
==Referências== | ==Referências== | ||
Linha 131: | Linha 174: | ||
---- | ---- | ||
[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 13h57min de 22 de março de 2021 (-03) | |||
---- | ---- | ||
[[Categoria:Administração de Servidores]] | [[Categoria:Administração de Servidores]] |
Edição atual tal como às 17h16min de 14 de outubro de 2022
Permissões de acesso a arquivos e diretórios
As permissões de acesso a arquivos e diretórios permitem protejer o sistema de arquivos do Linux do acesso indevido por pessoas ou programas não autorizados.
O princípio da segurança está baseado no conceito de usuário, grupo e outros usuários. Um arquivo ou diretório sempre possui um usuário que é o seu dono (owner).
O grupo (group) permite atribuir permissões de acesso a arquivos e diretórios comuns a um grupo de usuários.
Os outros são usuários que não são donos nem pertencem ao grupo do arquivo ou diretório.
As permissões podem do tipo:
- Leitura (Read) para arquivos, ou no caso de diretório listar seu conteúdo (por exemplo com ls);
- Escrita (Write) no arquivo, ou no caso de diretório a criação de arquivos ou sub-diretórios dentro dele;
- Execução (eXec) de arquivo (caso seja executável) ou de entrar para dentro do diretório (por exemplo com cd).
Exibição das permissões de acesso
- Comando ls -l
- Quando executamos este comando em um diretório qualquer, os arquivos e sub-diretórios são listados com as permissões de acesso correspondentes. Por exemplo:
evandro@evandro-HP:~/AulasIFPR$ ls -l total 20 -rw-r----- 1 evandro professores 46744 Fev 18 2013 Modelo-PlanoEnsino.odt drwxr-x--- 3 evandro professores 4096 Jun 11 16:15 TADS-AdministracaoServidores
- As colunas que aparecem na listagem são:
- Esquema de permissões (-rw-r-----);
- Número de ligações do arquivo ou diretório (ou número de inodes);
- Dono do arquivo;
- Grupo do dono do arquivo;
- Tamanho do arquivo;
- Mês Dia e Hora da criação do arquivo;
- Nome do arquivo.
- inode
- Um inodes é uma estrutura responsável por conter informações básicas sobre seus arquivos e pastas, como permissões de acesso, identificação dos donos dos arquivos, data e hora do último acesso e alterações, tamanho e o mais importante, os famosos ponteiros para o arquivo em si.
- O parâmetro -i mostra os números de inodes dos arquivos e diretórios:
ls -il
Esquema de permissões
O esquema de permissões usa 10 caracteres, o primeiro identifica o tipo (- arquivo; d diretório; l link; ...) e os outros 9 formam 3 grupos de 3 caracteres que mostram as permissões (r leitura; w escrita; x execução) para o dono, grupo e outros.
Por exemplo, analisando a primeira da saída do comando ls -l acima, referente ao arquivo Modelo-PlanoEnsino.odt. temos:
- dono possui permissão de leitura e escrita (r w -);
- grupo possui permissão de leitura (r - -);
- outros não possuem permissões sobre o arquivo (- - -).
Alteração das permissões de acesso
- Comando chmod
- Permite alterar as permissões de acesso, pode ser utilizado de dois modos:
- Formato Octal;
- Formato Simbólico.
Formato Octal
O formato octal usa três algarismos octal para atribuir permissões ao dono, grupo ou outros, conforme a tabela abaixo:
Octal | Binário | Permissões |
---|---|---|
0 | 000 | - - - |
1 | 001 | - - x |
2 | 010 | - w - |
3 | 011 | - w x |
4 | 100 | r - - |
5 | 101 | r - x |
6 | 110 | r w - |
7 | 111 | r w x |
Exemplo:
chmod 755 arquivo1
- Atribui permissão de leitura, escrita e execução (rwx) ao dono, leitura e execução (r-x) ao grupo e leitura e execução (r-x) aos outros.
Formato simbólico
O formato simbólico usa letras e símbolos para indicar as permissões. É composto de três elementos [1]:
- Alcance das permissões:
- u Usuário;
- g Grupo;
- o Outros.
- Ação sobre as permissões:
- + Acrescenta permissões;
- - Remove permissões;
- = Atribui permissão explicitamente.
- Tipo das permissões:
- r Leitura,
- w Escrita,
- x Execução.
Exemplo:
ls -l -rwx------ 1 evandro evandro 87475 Jun 11 18:07 netkit2-installer
chmod go+rw netkit2-installer
ls -l -rwxrw-rw- 1 evandro evandro 87475 Jun 11 18:07 netkit2-installer
- Acrescenta ao grupo e outros (go+) permissões de leitura e execução (rw).
Alterando permissões padrão
- Comando umask
- Permite alterar o padrão de permissões para arquivos novos a serem criados.
O comando umask usa três algarismos octal que formam uma máscara para as permissões dos novos arquivos e diretórios que serão criados.
Exemplos:
umask 777
- Usuário, grupo e outros não terão nenhuma permissão sobre novos arquivos criados. Seria equivalente a chmod 000.
umask 000
- Usuário, grupo e outros terão permissão de leitura, escrita e execução sobre novos arquivos criados. Seria equivalente a chmod 777.
umask 022
- Usuário terá permissão de leitura, escrita e execução e o grupo e outros terão permissão de leitura e execução sobre novos arquivos criados. Seria equivalente a chmod 755. Este é o modo padrão para criação de arquivos e diretórios no Linux.
- Alteração permanente da máscara umask para um usuário
- Deve editar o arquivo .profile e redefinir o valor de umask.
- Alteração permanente da máscara umask na criação de novos usuários
- Deve editar o arquivo /etc/login.defs e redefinir o valor de umask.
- A mascara 022 é o padrão histórico do umask para o Debian;
- As máscaras 027 ou 077 são padrões melhores de privacidade.
Modificando o dono e o grupo de um arquivo
- Comando chown
- Modifica o dono de um arquivo.
chown novo_dono arquivo
- Comando chgrp
- Modifica o grupo de um arquivo.
chgrp novo_grupo arquivo
Tarefa
Criar diretórios compartilhados para os usuários dos grupos primários, secundários e para uso público.
Alocar os diretórios num diretório /dados, a ser criado na raiz do sistema:
/dados/professores /dados/alunos /dados/publico /dados/arduino /dados/...
- Permissões
- Definir para os diretórios as seguintes permissões:
- Diretório /home do usuário: Leitura, Escrita e Execução somente para o dono do diretório;
- Diretórios dos grupos primário e secundário: Leitura, Escrita e Execução para o dono e grupo do diretório;
- Diretório publico: Leitura, Escrita e Execução para o todos.
Verifique a permissão padrão do diretório home que está sendo utilizada quando um usuário é criado. Utilize o comando umask para que novos usuários fiquem com a permissão indicada.
Testar as permissões de acesso com diferentes tipos de usuário.
Uma vez que um usuário cria um arquivo em um diretório compartilhado, ele pode atualizar a permissão de forma que somente ele tenha acesso a escrita, evitando que o arquivo seja apagado ou modificado por outro usuário.
Referências
- ↑ VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.
Evandro.cantu (discussão) 13h57min de 22 de março de 2021 (-03)