Este é um material de apoio aos meus alunos que tem todo embasamento durante as aulas presenciais.
Você pode fazer o exercício desta aula no seguinte link:
Em breve...
As respostas deste exercício estão no seguinte link:
Em breve...
Em breve...
As respostas deste exercício estão no seguinte link:
Em breve...
Você pode encontrar todos os resumos de aula no link abaixo:
http://www.dailson.com.br/2009/05/indice-mini-tutoriais-usados-em-aula.html
Ao executar um ls -l você visualiza algo como esta linha:
drwxr-xr-x
2 dailson alunos 4096 Jun 18 09:43 intranet
Vamos entender o que é cada dado deste:
drwxr-xr-x --> Permissões
2 --> A quantidade de ítens dentro deste diretório
dailson --> Usuário dono do diretório intranet
alunos --> Grupo dono do diretório intranet
4096 --> Tamanho em bytes
18 --> Dia da criação do
diretório
09:43 --> Hora decriação do diretório
intranet --> Nome do diretório
Veja a figura abaixo que ilustra mais um exemplo:
O Primeiro caracter identifica o tipo do arquivo/objeto:
* d => diretório;
* b => arquivo de bloco;
* c => arquivo especial de
caractere;
* p => canal;
* s => socket;
* - => arquivo normal.
Já os outros caracteres significam:
* r => permissão de leitura (read);
* w => permissão de
gravação (write);
* x => permissão de
execução (execution);
* - => permissão
desabilitada.
Vamos aprender alterar as permissões de propriedade do objeto (arquivo,
diretório ou link...) As permissões são propriedade de usuário dono e grupo dono de um diretório e/ou
arquivo.
Atribuir a propriedade de um diretório/arquivo para um determinado
usuário
chown nome-usuario diretorio/arquivo
Exemplo:
Passar a propriedade do diretório /jogos para o usuário dailson
#
chown dailson /jogos
Passar a propriedade do diretório /jogos e todos os subdiretórios e
arquivos para o usuário dailson
#
chown -Rvf dailson /jogos
Atribuir a propriedade de um diretório/arquivo para um determinado
grupo
chgrp
nome-grupo diretorio/arquivo
Exemplo:
Passar a propriedade do diretório /jogos para o grupo alunos
#
chgrp alunos/jogos
Passar a propriedade do diretório /jogos e todos os subdiretórios e
arquivos para o grupo alunos
#
chgrp -Rvf alunos /jogos
Passar a propriedade de um diretório/arquivo para um usuário e grupo ao mesmo tempo
#
chown usuario:grupo diretorio/arquivo
Exemplo:
Passar para o usuário dailson e
grupo alunos o diretório /jogos
#
chown dailson:alunos /jogos
Passar para o usuário dailson e
grupo alunos o diretório /jogos e todos os seus subdiretórios e arquivos
#
chown -Rvf dailson:alunos /jogos
Alterando as Permissões com o chmod
Em relação as permissões:
Leitura (r):
Em arquivos, permite examinar o conteúdo do arquivo.
Em diretórios permite listar conteúdo do diretório.
Escrita (w):
Em arquivos, permite escrever, remover e alterar o arquivo.
Em diretórios, permite criar e remover arquivos dentro do diretório.
Execução (x):
Em arquivos, permite executar um arquivo como um programa.
Em diretório, permite ler e escrever em arquivos dentro do diretório.
Sendo que os três primeiros rwx pertencem ao Dono do arquivo, os outros
três rwx pertencem ao Grupo e por fim os últimos três rwx pertencem aos outros
usuários que não fazem parte do grupo.
Trabalhando com as permissões :
Poderemos trabalhar de duas formas. Usando as permissões literais, ou usando o modo binário.
Para usar a forma literal são necessário saber que:
u : permissões para o dono da
pasta (user).
g : permissões para o grupo
(group).
o : permissões para os demais
(others).
+ : Adiciona a permissão
- : Remove a permissão
r : permissão de leitura
w : permissão de escrita
x : No caso dos arquivos indica permissão de escrita e, no caso da pasta,
permissão para ver o conteúdo.
Veja a figura:
chmdo permissões
diretório/arquivo
Obs: Todos os exemplos serão em cima deste diretório:
drwxr-xr-x
2 dailson alunos 4096 Jun 18 09:43 intranet
Atribuir todas as permissões ao
usuário dailson no diretório intranet
chmod
Atribui todas as permissões apenas para o usuário dono do diretório
intranet (usuário dailson)
#
chmod u=+rwx intranet
ou
#
chmod u=+r+w+x intranet
Atribui todas as permissões apenas para o grupo dono do diretório
intranet (grupo alunos)
#
chmod g=+rwx intranet
ou
#
chmod g=+r+w+x intranet
Atribui todas as permissões apenas para os outros usuários do diretório
intranet
#
chmod o=+rwx intranet
ou
#
chmod o=+r+w+x intranet
Atribui todas as permissões apenas para o usuário dono, grupo dono e os
outros usuários do diretório intranet
#
chmod u=+rwx,g=+rwx,o=rwx intranet
ou
#
chmod u=+r+w+x,g=+r+w+x,o=r+w+x intranet
Retira todas as permissões apenas para o usuário dono do diretório
intranet (usuário dailson)
#
chmod u=-rwx intranet
ou
#
chmod u=-r-w-x intranet
Retira todas as permissões apenas para o grupo dono do diretório
intranet (grupo alunos)
#
chmod g=-rwx intranet
ou
#
chmod g=-r-w-x intranet
Retira todas as permissões apenas para os outros usuários do diretório
intranet
#
chmod o=-rwx intranet
ou
#
chmod o=-r-w-x intranet
Retira todas as permissões do usuário dono, grupo dono e os outros
usuários do diretório intranet
#
chmod u=-rwx,g=-rwx,o=-rwx intranet
ou
#
chmod u=-r-w-x,g=-r-w-x,o=-r-w-x intranet
Você pode usar estes sinais a vontade, conforme os exemplos abaixo,
sabendo que o + atribui e o - retira a permissão
#
chmod u=+r-w+x,g=+r-w-x,o=r+w-x intranet
#
chmod u=+r-w+x,g=+r+w-x,o=r+w+x intranet
Obs:
Lembre-se que o parâmetro -R de recursividade (ou seja: aplicar a todos
os arquivos e subdiretórios também pode ser usado nos comandos chmod)
...
Você também pode atribuir os direitos de leitura, gravação e execução
aos três níveis (usuário, grupo e outros) de uma só vez.
Atribuir o direito de leitura aos três níveis (usuário, grupo e outros)
#
chmod +r intranet
Atribuir o direito de gravação aos três níveis (usuário, grupo e
outros)
#
chmod +w intranet
Atribuir o direito de execução aos três níveis (usuário, grupo e
outros)
#
chmod +x intranet
Utilizando o Modo Octal
No modo Octal as letras assumem valores:
r=4
w=2
x=1
Em qualquer posição, seja ela para usuário, grupo ou outros...
Os valores permanecem o mesmo
r=4
w=2
x=1
E para alterar as permissões, poderemos usar a soma destes valores para
cada um dos objetos das permissões: usuário, grupo e outros.
Veja:
No exemplo abaixo, veja como aplicar a soma dos números para atribuir
uma permissão:
Veja mais exemplos abaixo:
Obs: Todos os exemplos serão em cima deste diretório:
drwxr-xr-x
2 dailson alunos 4096 Jun 18 09:43 intranet
Atribui todas as permissões apenas para o usuário dono do diretório
intranet (usuário dailson)
#
chmod 700 intranet
Atribui todas as permissões apenas para o grupo dono do diretório
intranet (grupo alunos)
#
chmod 070 intranet
Atribui todas as permissões apenas para os outros usuários do diretório
intranet
#
chmod 007 intranet
Atribui todas as permissões apenas para o usuário dono, grupo dono e os
outros usuários do diretório intranet
#
chmod 777 intranet
Retira todas as permissões apenas para o usuário dono do diretório intranet
(usuário dailson)
#
chmod 077 intranet
Retira todas as permissões apenas para o grupo dono do diretório
intranet (grupo alunos)
#
chmod 070 intranet
Retira todas as permissões apenas para os outros usuários do diretório
intranet
#
chmod 770 intranet
Retira todas as permissões apenas para o usuário dono, grupo dono e os
outros usuários do diretório intranet
#
chmod 000 intranet
Você pode usar estes parametros da maneira que bem entender.
#
chmod 123 intranet
#
chmod 234 intranet
#
chmod 345 intranet
#
chmod 456 intranet
#
chmod 567 intranet
#
chmod 755 intranet
#
chmod 644 intranet
Obs:
Lembre-se que o parâmetro -R de recursividade (ou seja: aplicar a todos
os arquivos e subdiretórios também pode ser usado nos comandos chmod)
O Parâmetro UMASK
Toda vez que você cria um diretório ou arquivo, as permissões padrões
já aparecem. Estas permissões vem de um parâmetro chamado umask.
Faça o teste
Crie um diretório e um arquivo e veja quais são as permissões.
A umask (user mask) são 3 números que definem as permissões iniciais do
dono, grupo e outros usuários que o arquivo/diretório receberá quando for
criado ou copiado para um novo local. Digite umask sem parâmetros para retornar
o valor de sua umask atual.
A umask tem efeitos diferentes caso o arquivo que estiver sendo criado
for binário (um programa executável) ou texto . Veja a tabela a seguir para ver
qual é a mais adequada a sua situação:
Um arquivo texto criado com o comando umask 012;touch texto.txt
receberá as permissões -rw-rw-r--, pois 0 (dono) terá permissões rw-, 1
(grupo), terá permissões rw- e 2 (outros usuários) terão permissões r--. Um
arquivo binário copiado com o comando umask 012;cp /bin/ls /tmp/ls receberá as
permissões -r-xr--r-x (confira com a tabela acima).
Por este motivo é preciso atenção antes de escolher a umask, um valor
mal escolhido poderia causar problemas de acesso a arquivos, diretórios ou
programas não sendo executados. O valor padrão da umask na maioria das
distribuições atuais é 022. A umask padrão no sistema Debian é a 022 .
A umask é de grande utilidade para programas que criam
arquivos/diretórios temporários, desta forma pode-se bloquear o acesso de
outros usuários desde a criação do arquivo, evitando recorrer ao chmod.
Geralmente o umask é configurado no arquivo /etc/bash.bashrc ou
/etc/profile
Dica:
Para saber qual é o resultado do umask:
Em binários e diretórios = Subtraia de 7
Em Arquivos = Subtraia de 6
Faça o teste na tabela acima.
Fontes: