Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior |
unix:permissoes_em_arquivos [2023/11/16 14:28] – maziero | unix:permissoes_em_arquivos [2023/11/16 14:33] (atual) – [Exercícios] maziero |
---|
Vamos analisar melhor os caracteres das colunas iniciais da listagem de diretório apresentada acima. | Vamos analisar melhor os caracteres das colunas iniciais da listagem de diretório apresentada acima. |
| |
As entradas de diretório em um sistema UNIX têm seu tipo indicado pelo **primeiro caractere** da listagem de diretório longa. Os tipos de entradas mais freqüentes são: | As entradas de diretório em um sistema UNIX têm seu tipo indicado pelo **primeiro caractere** da listagem de diretório longa. Os tipos de entradas mais frequentes são: |
| |
* ''-'' : arquivo normal | * ''-'' : arquivo normal |
</code> | </code> |
| |
O comando ''chmod'' possui uma opção interessante (''-R''), que permite atribuir permissões de maneira //recursiva//, ou seja, nos conteúdos dos sub-diretórios. Assim, a melhor maneira de proteger seu diretório ''home'' dos olhares indiscretos de membros do seu grupo e de terceiros é executar o seguinte comando: | O comando ''chmod'' possui uma opção interessante (''-R''), que permite atribuir permissões de maneira //recursiva//, ou seja, nos conteúdos dos subdiretórios. Assim, a melhor maneira de proteger seu diretório ''home'' dos olhares indiscretos de membros do seu grupo e de terceiros é executar o seguinte comando: |
| |
<code> | <code> |
</code> | </code> |
| |
O uso do comando ''chmod'' em modo octal é similar ao modo simbólico, embora mais difícil. As expressões de permissão são substituidas por valores octais representando as permissões desejadas. Assim, se desejarmos atribuir as permissões ''rwxr-x---'' a um arquivo ''teste.c'', devemos considerar que ''rwxr-x---'' -> ''rwx'' ''r-x'' ''---'' -> 111 101 000 (binário) -> 7 5 0 (octal) -> 750. Desta forma, o comando a executar é: | O uso do comando ''chmod'' em modo octal é similar ao modo simbólico, embora mais difícil. As expressões de permissão são substituídas por valores octais representando as permissões desejadas. Assim, se desejarmos atribuir as permissões ''<nowiki>rwxr-x---</nowiki>'' a um arquivo ''teste.c'', devemos considerar que ''<nowiki>rwxr-x---</nowiki>'' -> ''rwx'' ''r-x'' ''<nowiki>---</nowiki>'' -> 111 101 000 (binário) -> 7 5 0 (octal) -> 750. Desta forma, o comando a executar é: |
| |
<code> | <code> |
> '' 0 2 7 '' -> máscara de permissões, em octal | > '' 0 2 7 '' -> máscara de permissões, em octal |
| |
Assim, o comando ''umask 027'' permite definir a máscara desejada (''rwxr-x---''). Normalmente esse comando é usado nos arquivos de configuração do shell, e nos scripts de instalação de aplicações. | Assim, o comando ''umask 027'' permite definir a máscara desejada (''<nowiki>rwxr-x---</nowiki>''). Normalmente esse comando é usado nos arquivos de configuração do shell, e nos scripts de instalação de aplicações. |
| |
===== Os comandos chown e chgrp ===== | ===== Os comandos chown e chgrp ===== |
| |
O comando ''chown'' permite a mudança do usuário proprietário de um arquivo. Somente o super-usuário pode fazê-lo. O comando chgrp permite a permite a mudança do grupo proprietário de um arquivo. Somente o super-usuário (//root//) e o usuário proprietário do arquivo podem fazê-lo. O proprietário só pode mudá-lo para um grupo ao qual ele também pertença. Exemplos: | O comando ''chown'' permite a mudança do usuário proprietário de um arquivo. Somente o superusuário pode fazê-lo. O comando ''chgrp'' permite a permite a mudança do grupo proprietário de um arquivo. Somente o superusuário (//root//) e o usuário proprietário do arquivo podem fazê-lo. O proprietário só pode mudá-lo para um grupo ao qual ele também pertença. |
| |
| Exemplos: |
| |
<code> | <code> |
- Qual a diferença entre executar e ler um diretório (permissões r e x)? | - Qual a diferença entre executar e ler um diretório (permissões r e x)? |
- Qual a diferença entre executar e ler um arquivo (permissões r e x)? | - Qual a diferença entre executar e ler um arquivo (permissões r e x)? |
- Você conseguiria mudar o nome de seu próprio diretório //home// ? Por que ? | - Você conseguiria mudar o nome de seu próprio diretório //home//? Por que? |
- Crie um arquivo ''teste'' com os direitos de acesso ''rw-rw-rw-'', e indique como usar o comando ''chmod'' para alterar seus direitos de acesso para: | - Crie um arquivo ''teste'' com os direitos de acesso ''rw-rw-rw-'', e indique como usar o comando ''chmod'' para alterar seus direitos de acesso para: |
* ''rw-rw-r--'' | * ''rw-rw-r--'' |
* ''r-xr-xr-x'' | * ''r-xr-xr-x'' |
* ''rw-r--r--'' | * ''rw-r--r--'' |
* ''r--------'' | * ''<nowiki>r--------</nowiki>'' |
- Execute o comando ''umask'' para que novos arquivos criados no sistema tenham as permissões de acesso definidas a seguir, e teste as máscaras definidas criando novos arquivos (comando ''touch'') e diretórios (comando ''mkdir''). Finalmente, explique por que razão as permissões dos arquivos não coincidem com as esperadas, mas as dos diretórios sim. | - Execute o comando ''umask'' para que novos arquivos criados no sistema tenham as permissões de acesso definidas a seguir, e teste as máscaras definidas criando novos arquivos (comando ''touch'') e diretórios (comando ''mkdir''). Finalmente, explique por que razão as permissões dos arquivos não coincidem com as esperadas, mas as dos diretórios sim. |
* ''rw-rw-r--'' | * ''rw-rw-r--'' |
* ''rw-r--r--'' | * ''rw-r--r--'' |
* ''<nowiki>r--------</nowiki>'' | * ''<nowiki>r--------</nowiki>'' |
- Crie dois diretórios ''d1'' e ''d2'', com permissões respectivas ''r--r--r--'' e ''r-xr-xr-x'', e compare as possibilidades de acesso em ambos. É possível listar o conteúdo de ambos, estando fora deles ? É possível entrar em ambos ? | - Crie dois diretórios ''d1'' e ''d2'', com permissões respectivas ''<nowiki>r--r--r--</nowiki>'' e ''r-xr-xr-x'', e compare as possibilidades de acesso em ambos. É possível listar o conteúdo de ambos, estando fora deles? É possível entrar em ambos? |
| |