Admin Linux - gerenciamento de arquivos / pastas

Para apresentar as permissões conforme se aplicam a diretórios e arquivos no CentOS Linux, vamos examinar a seguinte saída de comando.

[[email protected] etc]$ ls -ld /etc/yum* 
drwxr-xr-x. 6 root root 100 Dec  5 06:59 /etc/yum 
-rw-r--r--. 1 root root 970 Nov 15 08:30 /etc/yum.conf 
drwxr-xr-x. 2 root root 187 Nov 15 08:30 /etc/yum.repos.d

Note - Os três tipos de objetos principais que você verá são

  • "-" - um travessão para arquivo simples

  • "d" - para um diretório

  • "l" - para um link simbólico

Vamos nos concentrar nos três blocos de saída para cada diretório e arquivo -

  • drwxr-xr-x: root: root
  • -rw-r - r--: root: root
  • drwxr-xr-x: root: root

Agora vamos decompô-lo, para entender melhor essas linhas -

d Significa que o tipo de objeto é um diretório
rwx Indica permissões de diretório aplicadas ao proprietário
rx Indica permissões de diretório aplicadas ao grupo
rx Indica permissões de diretório aplicadas ao mundo
raiz A primeira instância, indica o proprietário do diretório
raiz A segunda instância indica o grupo ao qual as permissões de grupo são aplicadas

É importante compreender a diferença entre proprietário , grupo e mundo . Não entender isso pode ter grandes consequências nos servidores que hospedam serviços na Internet.

Antes de dar um exemplo do mundo real, vamos primeiro entender as permissões conforme se aplicam a diretórios e arquivos .

Por favor, dê uma olhada na tabela a seguir e continue com as instruções.

Octal Simbólico Perm. Diretório
1 x Executar Entre no diretório e acesse os arquivos
2 W Escreva Exclua ou modifique os arquivos em um diretório
4 r Ler Liste os arquivos dentro do diretório

Note- Quando os arquivos devem estar acessíveis para leitura em um diretório, é comum aplicar permissões de leitura e execução . Caso contrário, os usuários terão dificuldade em trabalhar com os arquivos. Deixar a gravação desativada garantirá que os arquivos não possam ser: renomeados, excluídos, copiados ou ter as permissões modificadas.

Aplicação de permissões a diretórios e arquivos

Ao aplicar permissões, há dois conceitos para entender -

  • Permissões Simbólicas
  • Permissões octais

Em essência, cada um é o mesmo, mas uma maneira diferente de se referir e atribuir permissões de arquivo. Para um guia rápido, estude e consulte a seguinte tabela -

Ler Escreva Executar
Octal 4 2 1
Symbolic r W x

Ao atribuir permissões usando o octalmétodo, use um número de 3 bytes, como: 760. O número 760 se traduz em: Proprietário: rwx; Grupo: rw; Outro (ou mundo) sem permissões.

Outro cenário: 733 seria traduzido em: Proprietário: rwx; Grupo: wx; Outro: wx.

Há uma desvantagem nas permissões usando o método Octal. Os conjuntos de permissões existentes não podem ser modificados. Só é possível reatribuir todo o conjunto de permissões de um objeto.

Agora você pode se perguntar, o que há de errado em sempre reatribuir permissões? Imagine uma grande estrutura de diretório, por exemplo / var / www / em um servidor web de produção. Queremos retirar recursivamente o bit w ou write em todos os diretórios para Other. Assim, forçando-o a ser adicionado pró-ativamente apenas quando necessário para medidas de segurança. Se reatribuirmos todo o conjunto de permissões, removeremos todas as outras permissões personalizadas atribuídas a cada subdiretório.

Portanto, isso causará um problema tanto para o administrador quanto para o usuário do sistema. Em algum ponto, uma pessoa (ou pessoas) precisaria reatribuir todas as permissões personalizadas que foram eliminadas, reatribuindo todo o conjunto de permissões para cada diretório e objeto.

Neste caso, gostaríamos de usar o método Simbólico para modificar as permissões -

chmod -R o-w /var/www/

O comando acima não iria "sobrescrever as permissões", mas modificar os conjuntos de permissões atuais. Portanto, acostume-se a usar as melhores práticas

  • Octal apenas para atribuir permissões
  • Simbólico para modificar conjuntos de permissões

É importante que um administrador CentOS seja proficiente com as permissões Octal e Simbólica, pois as permissões são importantes para a integridade dos dados e de todo o sistema operacional. Se as permissões estiverem incorretas, o resultado final serão dados confidenciais e todo o sistema operacional ficará comprometido.

Com isso coberto, vamos dar uma olhada em alguns comandos para modificar permissões e proprietários / membros de objetos -

  • chmod
  • chown
  • chgrp
  • umask

chmod: Alterar bits de permissão do modo de arquivo

Comando Açao
-c Como detalhado, mas só relatará as alterações feitas
-v Detalhado, exibe os diagnósticos para cada solicitação feita
-R Aplica recursivamente a operação em arquivos e diretórios

chmod nos permitirá alterar as permissões de diretórios e arquivos usando conjuntos de permissão octal ou simbólica . Usaremos isso para modificar nossos diretórios de atribuição e uploads.

chown: Alterar proprietário e grupo do arquivo

Comando Açao
-c Como detalhado, mas só relatará as alterações feitas
-v Detalhado, exibe os diagnósticos para cada solicitação feita
-R Aplica recursivamente a operação em arquivos e diretórios

chown pode modificar a propriedade do usuário e do grupo de objetos. No entanto, a menos que seja necessário modificar ambos ao mesmo tempo, o uso de chgrp geralmente é usado para grupos.

chgrp: Alterar propriedade do grupo de arquivo ou diretório

Comando Açao
-c Como detalhado, mas só relatará as mudanças
-v Detalhado, emite o diagnóstico para cada solicitação feita
-R Recursivamente, aplica as operações em arquivos e diretórios

chgrp mudará o proprietário do grupo para aquele fornecido.

Prática do mundo real

Vamos mudar todas as atribuições do subdiretório em / var / www / students / para que o grupo proprietário seja o grupo de alunos . Em seguida, atribua a raiz de alunos ao grupo de professores. Mais tarde, faça do Dr. Terry Thomas o proprietário do diretório de alunos , uma vez que ele é o responsável por toda a academia de Ciência da Computação da escola.

Como podemos ver, quando criado, o diretório é deixado bastante cru.

[[email protected] ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 root root 40 Jan  9 22:03 /var/www/students/

[[email protected] ~]# ls -l /var/www/students/ 
total 0 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 assignments 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 uploads 

[[email protected] ~]#

Como administradores, nunca queremos fornecer nossas credenciais de root para ninguém. Mas, ao mesmo tempo, precisamos permitir que os usuários façam seu trabalho. Portanto, vamos permitir que o Dr. Terry Thomas tenha mais controle da estrutura do arquivo e limite o que os alunos podem fazer.

[[email protected] ~]# chown -R drterryt:professors /var/www/students/ 
[[email protected] ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 drterryt professors 40 Jan  9 22:03 /var/www/students/

[[email protected] ~]# ls -ls /var/www/students/ 
total 0 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 assignments 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 uploads

[[email protected] ~]#

Agora, cada diretório e subdiretório tem um proprietário de drterryt e o grupo proprietário são os professores . Como o diretório de tarefas é para os alunos entregarem os trabalhos atribuídos, vamos eliminar a capacidade de listar e modificar arquivos do grupo de alunos .

[[email protected] ~]# chgrp students /var/www/students/assignments/ && chmod 
736 /var/www/students/assignments/

[[email protected] assignments]# ls -ld /var/www/students/assignments/ 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[[email protected] assignments]#

Os alunos podem copiar tarefas para o diretório de tarefas . Mas eles não podem listar o conteúdo do diretório, copiar os arquivos atuais ou modificar arquivos no diretório de atribuições . Assim, ele apenas permite que os alunos enviem tarefas concluídas. O sistema de arquivos CentOS fornecerá um carimbo de data de quando as atribuições foram feitas.

Como proprietário do diretório de atribuições -

[[email protected] assignments]$ whoami 
drterryt

[[email protected] assignments]$ ls -ld /var/www/students/assignment 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[[email protected] assignments]$ ls -l /var/www/students/assignments/ 
total 4 
-rw-r--r--. 1 adama  students  0 Jan  9 23:14 myassign.txt 
-rw-r--r--. 1 tammyr students 16 Jan  9 23:18 terryt.txt

[[email protected] assignments]$

Podemos ver que o proprietário do diretório pode listar arquivos, bem como modificar e remover arquivos.

Comando umask: Fornece os modos padrão para as permissões de arquivo e diretório à medida que são criadas

umask é um comando importante que fornece os modos padrão para Permissões de Arquivo e Diretório à medida que são criadas.

As permissões umask usam lógica negada unária.

Permissão Operação
0 Ler, escrever, executar
1 Leia e escreva
2 Leia e execute
3 Somente leitura
4 Leia e execute
5 Só escrever
6 Executar apenas
7 Nenhuma permissão
[[email protected] umask_tests]$ ls -l ./ 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt

[[email protected] umask_tests]$ whoami 
adama

[[email protected] umask_tests]$ umask 
0022

[[email protected] umask_tests]$

Agora, vamos mudar o umask para nosso usuário atual e fazer um novo arquivo e diretório.

[[email protected] umask_tests]$ umask 077

[[email protected] umask_tests]$ touch mynewfile.txt

[[email protected] umask_tests]$ mkdir myNewDir

[[email protected] umask_tests]$ ls -l 
total 0 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt 
drwx------. 2 adama students 6 Jan 10 00:35 myNewDir 
-rw-------. 1 adama students 0 Jan 10 00:35 mynewfile.txt

Como podemos ver, os arquivos recém-criados são um pouco mais restritivos do que antes.

umask para usuários deve ser alterado em:

  • /etc/profile
  • ~/bashrc
[[email protected] centos]# su adama 
[[email protected] centos]$ umask 
0022 
[[email protected] centos]$

Geralmente, o umask padrão no CentOS ficará bem. Quando temos problemas com um padrão de 0022 , geralmente é quando diferentes departamentos pertencentes a grupos diferentes precisam colaborar em projetos.

É aqui que entra a função de um administrador de sistema, para equilibrar as operações e o design do sistema operacional CentOS.