quarta-feira, 10 de julho de 2013

Permissão de Arquivos no Linux - chmod

By on 16:57




PERMISSÃO DE ARQUIVOS


As permissões dos arquivos/diretórios são definidas pelo file mode (9 bits) que determinam as permissões para um determinado arquivo. Esse mecanismo nos permite definir três classes de usuários: o dono do arquivo, o grupo a qual o dono pertence e os outros usuários do sistema.

O sistema Linux é muito seguro, e como qualquer outro sistema seguro e confiável, ele impede que usuários iniciantes (ou mal-intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e acabem causando danos irreversíveis em seus arquivos, no seu micro ou na sua empresa.

Permissões básicas em um arquivo/diretório

Permissão
Ação
Efeito no arquivo
Efeito no diretório
Read (r)
Leitura
Visualização do conteúdo no arquivo
Visualização do conteúdo do diretório
Write (w)
Escrita
Modificar e apagar o arquivo
Criar/apagar arquivos/diretórios no diretório
Execute (x)
Execução
Execução do arquivo como programa
Entrar no diretório com cd, por exemplo


E como podemos visualizar estas permissões? É simples. Faremos um ls -l na raiz.Para visualizar as permissões dos arquivos/diretório podemos usar o seguinte comando: ls -l / 



Observe a primeira coluna. É ela que nos dá informação sobre as permissões.
O primeiro caractere é apenas o informativo para que tipo de arquivo está sendo mostrado e segue a seguinte ideia:
  • d: É um diretório;
  • b: É um arquivo de bloco (são frequentemente utilizados em dispositivos de comunicações paralelas como discos rígidos e CD/DVD);
  • c: É um arquivo especial de caractere;
  • p: É um canal, ou seja, é o redirecionamento da saída padrão de um programa para a entrada padrão de outro;
  • s: É um socket (comunicação entre dois processos);
  • - : É um arquivo normal

Analisando um exemplo mais simplificado:



Nas permissões dos dois primeiros arquivos começam com “-”, segundo a lista a cima, são arquivos normais. Já o terceiro começa com “d” indicando que é um diretório.
As permissões do arquivo prova
-rw-rw-r--. 1 erik erik 0 Jul 10 11:36 prova

rw- : permissões do usuário
rw- : permissões do grupo
r-- : permissões de outros (Não é o dono, e nem faz parte do grupo)

No caso, o arquivo pertence ao usuário erik e ao grupo erik.
O dono tem permissões de leitura e escrita (rw)
O grupo tem permissões de leitura e escrita (rw)
Outros tem permissões somente de leitura (r)

Para melhorar o entendimento das permissões, podemos memorizar a sequência com a sigla UGO:

u: Usuário dono
g: Grupo
o: Outros

Veja algumas permissões mais comuns:
--- => nenhuma permissão; 
r-- => permissão de leitura; 
r-x => leitura e execução; 
rw- => leitura e gravação;
rwx => leitura, gravação e execução.



COMO ALTERAR AS PERMISSÕES DE UM ARQUIVO?

O comando chmod (change mode) altera as propriedades de permissões de arquivos/diretórios.
Podemos adicionar, remover, ou indicar exatamente a permissão através dos símbolos:
+ : adiciona
- : remove
= : indica exatamente como será a permissão

Eles são utilizados juntamente com as letras u g o.



ADICIONANDO PERMISSÕES

Vamos supor que você queira dar permissão para outros usuários escrever no aquivo provas, será utilizado o sinal de mais (+).
O comando ficaria: chmod o+w prova



Perceba que agora o arquivo prova
-rw-rw-rw-. 1 erik erik 0 Jul 10 11:36 prova

Agora outros usuários podem escrever ou apagar o arquivo prova (ou não seja, não é uma boa prática de segurança).


REMOVENDO PERMISSÕES

Para que nenhum aluno mal-intencionado veja a prova, podemos remover as permissões para outros. Neste caso utilizaremos o sinal de menos (-)
O comando ficaria: chmod o-rw prova


-rw-rw----. 1 erik erik 0 Jul 10 11:36 prova

Notemos que agora outros não possui nenhuma permissão para o arquivo prova. Se algum outro usuário tentasse escrever, apagar, visualizar o conteúdo da prova, receberia a seguinte mensagem: Permission denied


  
Observe que o usuário user01 tentou apagar o arquivo prova, mas não obteve êxito.

PERMISSÕES NO FORMATO NUMÉRICO (OCTAL):

O chmod também aceita parâmetros numéricos de acordo com a tabela:

Read (r)
4
Write (w)
2
Execute (x)
1
Nenhuma permissão
0

Os números podem ser somados quando quiser configurar mais um acesso, por exemplo, caso queira que uma arquivo tenha opção de leitura (4) e escrita (2) somente para usuário e grupo:
chmod 660 prova
leitura (4) + escrita (2) = 6
o primeiro dígito é configuração de dono
o segundo dígito é configuração de grupo
o terceiro dígito é configuração de outros

Caso fosse necessário dar permissão de leitura para outros, o comando a ser usado seria:
chmod 664 prova



A permissão total de um arquivo seria o comando chmod 777, dando rwx para usuário, grupo e outros. Um arquivo com estas configurações é o que chamamos de “casa da mãe joana” pois dá acesso total a qualquer usuário.



CONCLUSÃO


O uso correto das permissões de arquivo ajuda a manter um sistema seguro, prevenindo que somente os usuários autorizados acessem os arquivos que possui direito.

Gostou? alguma dúvida, crítica, sugestão?
Utilize a seção de comentários.

Neste vídeo pode ser visto o chmod em execução:

1 comentários:

  1. Conteúdo objetivo, de fácil entendimento. Estava estudando os tipos de usuários e grupos, depois em permissões, ao qual cheguei no Linux e Programação. Recomendo fortemente para quem está iniciando em linux (como eu) o estudo de usuários e grupos para depois chegar nas permissões, tudo vai fazer mais sentido.
    Parabéns, leitura obrigatória esse tutorial.

    ResponderExcluir