Introdução
Serão apresentados aqui os principais comandos de manipulação de permissões. Para o bom entendimento deles, é necessário que o leitor conheça bem a teoria que foi explicada até aqui e que pratique cada um dos comandos. Uma última observação que deve ser feita antes de se começar, é que somente o dono do arquivo pode manipular suas permissões.
Toda esta seção foi baseada em [Ferreira (2003)].
CHMOD
Altera as permissões de acesso a arquivos.
Uso:
chmod [opções] <modo_arquivo> <arquivo>
Opção | Descrição |
-c | Mostra informações sobre os arquivos modificados. |
-f | Não imprime mensagens de erro. |
-R | Recursivo. Muda o modo de acesso de todos os arquivos e subdiretórios abaixo do especificado. |
-v | Descreve, detalhadamente, as alterações de atributos. |
<modo_arquivo> | Pode ser simbólico ou absoluto. |
Modo simbólico:
É uma lista de expressões na forma <identificador><operando><valor>, separadas por vírgula.
...<identificador>
u Usuário
g Grupo
o Outros
a Todos (all).
...<Operando>
+ Adiciona permissões às existentes.
- Retira a permissão das existentes.
= Assinala, explicitamente, uma permissão (anulando as outras).
...<Valor> - Veja as tabelas 01 e 02.
r Permissão para leitura.
w Permissão para escrita.
x Permissão para execução.
s Bit setuid, se atribuído a 'u'; bit setgid, se atribuído a 'g'.
t Bit sticky.
..Modo absoluto
É definido na forma <atributo_especial><dono><grupo><outros>, onde o <atributo_especial> é opcional -caso seja omitido, assume-se o valor 0 (zero) como padrão-. Veja as tabelas 01 e 02.
...<atributo_especial>
0 Nenhum atributo ligado.
1 Bit sticky ligado.
2 Bit setgid ligado.
3 Bits sticky e setgid ligados.
4 Bit setuid ligado.
5 Bits setuid e sticky ligados.
6 Bits setuid e setgid ligados.
7 Bits setuid, setgid e sticky ligados.
...<dono><grupo><outros>
0 Nenhuma permissão.
1 Permissão para execução.
2 Permissão para escrita.
3 Permissão para escrita e execução.
4 Permissão para leitura.
5 Permissão para leitura e execução.
6 Permissão para leitura e escrita.
7 Permissão para leitura, execução e escrita.
Exemplos
$ chmod u+x letra.txt
Adiciona permissão de execução pelo dono ao arquivo.
$ chmod u+wx,g-w,o=r letra.txt
Adiciona permissão de escrita e execução para o dono, retira permissão de escrita para o grupo e, para os outros usuários permite apenas leitura.
$ chmod 750 slackcfg.sh
Permissão de leitura, escrita e execução para o dono, leitura e execução para o grupo e nenhuma permissão aos outros usuários.
$ chmod 0750 slackcfg.sh
Equivalente ao anterior.
$ chmod 1777 /home/share
Liga o bit sticky do diretório e dá permissão de leitura, escrita e execução para todos os usuários.
CHOWN
Muda o dono de um arquivo.
Uso:
chown [opções] <novo_dono[.novo_grupo]> <arquivo>
Opção | Descrição |
-c | Exibe informações sobre os arquivos modificados. |
-f | Não imprime mensagens de erro. |
-R | Recursivo. Muda o grupo de todos os arquivos e subdiretórios abaixo do especificado. |
-v | Descreve, detalhadamente, as alterações de atributos. |
Exemplos
$ chown kurt letra.txt
Muda apenas do dono do arquivo.
$ chown kurt.musicos letra.txt
Muda o dono e o grupo do arquivo.
CHGRP
Muda o grupo de um arquivo.
Uso:
chgrp [opções] <novo_grupo> <arquivo>
Opção | Descrição |
-c | Exibe informações sobre os arquivos modificados. |
-f | Não imprime mensagens de erro. |
-R | Recursivo. Muda o grupo de todos os arquivos e subdiretórios abaixo do especificado. |
-v | Descreve, detalhadamente, as alterações de atributos. |
Exemplos
$ chgrp musicos letras
Muda o grupo do arquivo letras para musicos.
UMASK
Altera o valor da máscara de criação de arquivos. Os valores do umask são baseados no valor 666 (não, não tem a ver com o número da besta!), isto é, a saída e a entrada do comando umask são subtraídas deste valor. A máscara-padrão de criação de arquivos no Unix é 022, o que significa que a permissão de criação e acesso dos arquivos é 666-022=644 (rw-r--r--); isto implica que o usuário tem o direito de ler e escrever e os membros do grupo do dono e os outros usuários têm apenas o direito de ler o arquivo.
Normalmente o umask é definido no arquivo /etc/profile.
Uso:
umask [máscara]
Exemplos
$ umask 022
A permissão é 666-022=644. O usuário pode ler e escrever; o grupo e outros usuários podem somente ler.
$ umask 002
A permissão é 666-002=664. O usuário e o grupo podem ler e escrever; outros usuários podem apenas ler.