Permissões e propriedades de arquivos
Neste artigo falarei sobre como distinguir níveis e tipos de permissão em arquivos e diretórios, utilizar os comando chmod e chown para modificar propriedades e permissões, distinguir os modos octal e textual para os parâmetros dos comandos de mudança de permissões, entender o que é máscara de um arquivo e como modificá-la, entender e utilizar permissões especiais, como stick bit e suid bit.
Parte 4: Modificando proprietários e grupos
Nesta seção, irei apresentar os principais comandos utilizados para modificar e visualiza as propriedades e permissões de arquivos e diretórios.
Principais opções:
As tabelas a seguir facilitam a visualização das notações utilizadas pelo chmod.
Exemplos:
1) chmod u+rw,g+x documento.txt - concede permissões de leitura e gravação ao dono, e execução ao grupo para o arquivo documento.txt. note que somente quem tem permissão pode executar este comando (root ou dono do arquivo).
2) chmod 610 documento.txt - define permissão de leitura e gravação ao dono (4+2 = rw), execução para o grupo (1=x), e nenhuma permissão para qualquer outro usuário (zero). Importante notar que difere do exemplo anterior, pois na notação textual as permissões podem ser "adicionadas" às atuais, enquanto que na notação octal, o comando define a permissão do arquivo.
3) chmod +x binário.sh - concede permissão de execução (+x) de binário.sh para todos os usuários do sistema (caso não seja especificado o usuário, a permissão é concedida/retirada de todos - equivalente ao parâmetro a+x.
4) chmod -reference=documento.txt documento2.txt - aplica as mesmas permissões de documento.txt para documento2.txt.
5) chmod -R ug=rw,o=r testes/ - concede permissão de leitura e gravação ao dono e ao grupo, e permissão de leitura a outros, para o diretório testes e todos os arquivos ou sub-diretórios contidos dentro dele.
6) chown - permite a alteração do dono e do grupo relacionado ao arquivo, ou arquivos selecionados. Um usuário comum pode alterar o grupo de um arquivo caso seja membro tanto do grupo de origem quanto do grupo de destino. Porém, por motivos de segurança, apenas o super-usuário (root) pode alterar o dono de um arquivo.
Principais opções:
Exemplos:
Altera o grupo de arquivo.txt para eduardo. Note que se o usuário não tiver permissões suficientes, será mostrada uma mensagem de erro.
Altera o dono do arquivo arquivo2.txt para eduardo e o grupo para eduardo. Lembre-se que apenas o superusuário (root) pode realizar esta alteração.
Modifica o grupo do diretório dados/ e de todos o seu conteúdo para eduardo.
É equivalente ao comando "chown" somente com o parâmetro :grupo (ou seja, sem modificar o dono do arquivo, somente o grupo).
Principais opções:
Exemplos:
1) chgrp coisas texto1 texto 2 imagens/ - modifica o grupo associado aos arquivos texto1 texto2 e ao diretório imagens, associando-os ao grupo coisas. Note que o usuário deverá ter as permissões suficientes para esta modificação, caso contrário será mostrada uma mensagem de erro.
2) chgrp -R empregados comercial/ - modifica o grupo associado ao diretório comercial e todos os seus arquivos e sub-diretórios, associando-os ao grupo empregados.
chmod
Permite que se alterem as permissões e propriedades de um ou mais arquivos (change mode). É importante ressaltar que o usuário deve ter permissões para fazer as alterações (por exemplo: deve ser o usuário root, deve ser dono do arquivo, ou deve estar no grupo do arquivo, com permissão de escrita). Pode utilizar tanto a notação textual como a octal.Principais opções:
| chmod [ opções ] arquivo | diretório | |
| -R | Permite que se altere recursivamente as permissões de arquivos e diretórios. |
| --reference=arquivo | Permite que um determinado arquivo seja modificado tomando como referência o arquivo especificado. |
As tabelas a seguir facilitam a visualização das notações utilizadas pelo chmod.
| Nível de Permissão | |
| u | Usuário ou dono do arquivo. |
| g | Grupo do arquivo. |
| o | Outros usuários que não são donos e não estão cadastrados no grupo. |
| a | Afeta todos os anteriores (u, g, o). |
| Tipo de Permissão - Notação Textual | |
| r | Concede ou remove permissão de leitura. |
| w | Concede ou remove permissão de escrita. |
| x | Concede ou remove permissão de execução. |
| a | Concede ou remove todas as permissões anteriores (all). |
| Tipo de Permissão - Notação Octal | |
| 4 | Indica permissão de leitura. |
| 2 | Indica permissão de escrita. |
| 1 | Indica permissão de execução. |
| 7 | Indica todas as permissões. |
| 0 | indica sem permissão. |
| Operadores | |
| + | Concede permissão(ões) especificada(s). |
| - | Remove permissão(ões). |
| = | Atribui somente esta(s) permissão(ões) ao arquivo, removendo a(s) que não sem encontra(m) explícita(s). |
Exemplos:
1) chmod u+rw,g+x documento.txt - concede permissões de leitura e gravação ao dono, e execução ao grupo para o arquivo documento.txt. note que somente quem tem permissão pode executar este comando (root ou dono do arquivo).
2) chmod 610 documento.txt - define permissão de leitura e gravação ao dono (4+2 = rw), execução para o grupo (1=x), e nenhuma permissão para qualquer outro usuário (zero). Importante notar que difere do exemplo anterior, pois na notação textual as permissões podem ser "adicionadas" às atuais, enquanto que na notação octal, o comando define a permissão do arquivo.
3) chmod +x binário.sh - concede permissão de execução (+x) de binário.sh para todos os usuários do sistema (caso não seja especificado o usuário, a permissão é concedida/retirada de todos - equivalente ao parâmetro a+x.
4) chmod -reference=documento.txt documento2.txt - aplica as mesmas permissões de documento.txt para documento2.txt.
5) chmod -R ug=rw,o=r testes/ - concede permissão de leitura e gravação ao dono e ao grupo, e permissão de leitura a outros, para o diretório testes e todos os arquivos ou sub-diretórios contidos dentro dele.
6) chown - permite a alteração do dono e do grupo relacionado ao arquivo, ou arquivos selecionados. Um usuário comum pode alterar o grupo de um arquivo caso seja membro tanto do grupo de origem quanto do grupo de destino. Porém, por motivos de segurança, apenas o super-usuário (root) pode alterar o dono de um arquivo.
Principais opções:
| chown [novo_proprietário][:novo_grupo] arquivo/diretório | |
| -R | Permite que se altere recursivamente o proprietário e o grupo do(s) arquivo(s). |
| --reference=arquivo | O arquivo usará o grupo configurado para o arquivo especificado. |
Exemplos:
Altera o grupo de arquivo.txt para eduardo. Note que se o usuário não tiver permissões suficientes, será mostrada uma mensagem de erro.
Altera o dono do arquivo arquivo2.txt para eduardo e o grupo para eduardo. Lembre-se que apenas o superusuário (root) pode realizar esta alteração.
Modifica o grupo do diretório dados/ e de todos o seu conteúdo para eduardo.
chgrp
Altera apenas o grupo para os arquivos ou diretórios indicados. Um usuário comum pode alterar o grupo de um arquivo caso ele pertença tanto ao grupo de origem como ao grupo de destino. O super-usuário (root) pode alterar o grupo do arquivo para qualquer grupo válido no sistema.É equivalente ao comando "chown" somente com o parâmetro :grupo (ou seja, sem modificar o dono do arquivo, somente o grupo).
Principais opções:
| chgrp [ opções ] arquivo(s) | |
| -R | Permite que se altere recursivamente a propriedade de grupo de diretórios e seu conteúdo. |
| --reference=arquivo | Permite que o comando use o grupo configurado para "arquivo" para configurar outros grupos. |
| -c | Descreve detalhadamente a ação para cada arquivo cuja propriedade de grupo está sendo alterada. |
| -f | Força a mudança de grupo, sem relatório de erros. |
Exemplos:
1) chgrp coisas texto1 texto 2 imagens/ - modifica o grupo associado aos arquivos texto1 texto2 e ao diretório imagens, associando-os ao grupo coisas. Note que o usuário deverá ter as permissões suficientes para esta modificação, caso contrário será mostrada uma mensagem de erro.
2) chgrp -R empregados comercial/ - modifica o grupo associado ao diretório comercial e todos os seus arquivos e sub-diretórios, associando-os ao grupo empregados.
Vale a leitura para quem tem dificuldade em lidar com o esquema de permissões.
---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br