Somente o super-usuário (root) tem ações irrestritas no sistema, justamente por ser o usuário responsável pela configuração, administração e manutenção do Linux. Cabe a ele por exemplo, determinar o que cada usuário pode executar, criar, modificar, etc. Naturalmente, a forma usada para determinar o que o usuário pode fazer é a determinação de permissões.
Um ponto interessante de citar é que o Linux trata todos os diretórios como arquivo também, portanto, as permissões se aplicam de igual forma para ambos. Tais permissões podem ser divididas em quatro partes para indicar: tipo, proprietário, grupo e outras permissões. O primeiro caractere da string indica o tipo de arquivo: se for "d" representa um diretório, se for "-" equivale a um arquivo. Entretanto, outros caracteres podem aparecer, já que existem outros tipos de arquivo no Linux, conforme mostra a tabela abaixo:
d => diretório
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
s => socket
- => arquivo normal
É necessário ter um certo cuidado com as permissões. Por exemplo, do que adianta o usuário ter permissão de gravação se ele não tem permissão de leitura habilitada? Ele poderá ler o arquivo para poder modifica-lo? Não! De certo, isso tem utilidade em arquivos de log. Fazendo associação com as letras r, w, x e o caractere -, vamos entender cada uma:
r => significa permissão de leitura (read);
w => significa permissão de gravação (write);
x => significa permissão de execução (execution);
- => significa permissão desabilitada.
A ordem em que as permissões devem aparecer é rwx.
Muitas vezes a pessoa não sabe o que está fazendo quando dá uma permissão 777 ou 455 para um arquivo. Vou explicar mais a fundo o funcionamento do chmod.
Veja o exemplo parcial no comando ls-la
drwx------ 4 reginaldo reginaldo 4096 2009-02-10 20:26 .mozilla
drwxr-xr-x 2 reginaldo reginaldo 4096 2009-02-10 20:25 Música
-rwxr-xr-x 1 reginaldo reginaldo 6388 2009-02-28 15:19 teste
-rw-r--r-- 1 reginaldo reginaldo 95 2009-02-28 15:19 teste.c
-rw-r--r-- 1 reginaldo reginaldo 89 2009-02-28 15:14 teste.c~
-rw-r--r-- 1 reginaldo reginaldo 453 2009-02-28 15:22 teste.class
-rw-r--r-- 1 reginaldo reginaldo 152 2009-02-28 15:22 teste.java
-rw-r--r-- 1 reginaldo reginaldo 152 2009-02-28 15:21 teste.java~
trocando em miúdos:
d rwx rwx rwx
1. d: tipo de arquivo (diretório);
2. rwx: permissões do proprietário e/ou usuário;
3. rwx : permissões para usuários do mesmo grupo;
4. rwx: permissões para todos usuários.
Configurando permissões com chmod
Acima, você dever tido pelo menos uma noção do que são permissões e sua importância no Linux. Chegou a hora de aprender a configurar permissões e isso é feito através do comando chmod (de change mode). Um detalhe interessante deste comando é que você pode configurar permissões de duas maneiras: simbolicamente e numericamente. Primeiramente veremos o método simbólico.
Para ter uma visão mais clara da forma simbólica com o chmod, imagine que tais símbolos se encontram em duas listas, e a combinação deles gera a permissão:
Lista 1
Símbolo
u => usuário
g => grupo
O (letra o maiúscula) => outro
a => totos
Lista 2
Símbolo
r => leitura
w => gravação
x => execução
Para poder combinar os símbolos destas duas listas, usam-se os operadores:
+ (sinal de adição) => adicionar permissão
- (sinal de subtração) => remover permissão
= (sinal de igualdade) => definir permissão
Para mostrar como essa combinação é feita, vamos supor que você deseje adicionar permissão de gravação no arquivo teste.c para um usuário. Então o comando a ser digitado será:
chmod u+w teste.c
O ?u? indica que a permissão será dada a um usuário, o sinal de adição (+) indica que está sendo adicionada a permissão e ?w? indica que a permissão que está sendo dada é de gravação.
Caso você queira dar permissões de leitura e execução ao seu grupo, o comando será:
chmod g+rw teste.c
Também se pode trabalhar com valores decimais de 0 a 7. Cada valor tem uma combinação de permissões pelos 3 grupos de caracteres que expliquei acima. Vamos à elas.
0 : --- (nenhuma permissão)
1 : --x (somente execução)
2 : -w- (somente escrita)
3 : -wx (escrita e execução)
4 : r-- (somente leitura)
5 : r-x (leitura e execução)
6 : rw- (leitura e escrita)
7 : rwx (leitura, escrita e execução)
Exemplos:
#chmod 740 arquivo.txt
atribui permissão de leitura, escrita e execução (7) para o dono do arquivo, somente leitura para os usuários do mesmo grupo (4), e nenhuma permissão para outros usuários.
#chmod 640 arquivo2.txt
atribui permissão de leitura e escrita (6) para o dono do arquivo, somente leitura para os usuários do mesmo grupo (4), e nenhuma permissão para outros usuários
Dica:
Para você não perder dono e grupo definidos anteriormente, use o número 4 antes das permissões:
# chmod -R 4777 pasta
Só o dono do arquivo possa removê-lo
#chmod -R 1777 pasta
Status
Estar letras que aparecem junto com as permissoes (chmod u=rwx), são chamadas de status. Abaixo segue algumas dicas interessantes a respeito dos tipos de status. Para maiores informaçoes, você pode acessar a manpage stat.
Sequencia de formatos validos para arquivos (sem filesystem)
%a acesso direita octal
%F tipo de arquivo
%f cru modalidade hex
%G nome do proprietário do grupo
%g ID do proprietario do grupo
%n nome do arquivo
%U nome do proprietario
%u id do proprietario
%x horario do ultimo acesso
%y da última vez da modificação
Sequencia de formatos validos para file system
%a blocos livres para usuarios comuns
%b tamanho de um arquivo do sistema
%n nome do arquivo
Para apagar todas as permissões da pasta do user
# chmod a-rwx
Para fazer com que só o user mexa nos seus arquivos:
# chmod u=rwx
é o mesmo que
chown user.user -R /home/user
chmod 740 -R /home/user
Nenhum comentário:
Postar um comentário