Permissoes de acesso a arquivos e diretorios: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(24 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===
==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.


;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'''.
;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


:Por exemplo, analisando a primeira da saída do comando '''ls -l''' acima, referente ao arquivo Modelo-PlanoEnsino.odt. temos:
==Esquema de permissões==
:*'''dono''' possui permissão de leitura e escrita ('''r w -''');
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'''.
:*'''grupo''' possui permissão de leitura ('''r - -''');
 
:*'''outros''' não possuem permissões sobre o arquivo ('''- - -''').
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  
  -rwxr-xr-x 1 evandro evandro  87475 Jun 11 18:07 netkit2-installer
  -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 121: Linha 127:


;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'''.
;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 pe o padrão histórico do umask para o Debian;
:*A mascara 022 é o padrão histórico do umask para o Debian;
:*Máscaras 027, ou mesmo 077, são padrões melhores de privacidade.
:*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 130: 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 135: Linha 174:


----
----
--[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 18h21min de 5 de julho de 2015 (BRT)
[[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:
  1. Esquema de permissões (-rw-r-----);
  2. Número de ligações do arquivo ou diretório (ou número de inodes);
  3. Dono do arquivo;
  4. Grupo do dono do arquivo;
  5. Tamanho do arquivo;
  6. Mês Dia e Hora da criação do arquivo;
  7. 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

  1. 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)