você está aqui: Home  → Arquivo de Mensagens

Os Modos de Permissão no Unix

Colaboração: Lenimar N. Andrade

Data de Publicação: 11 de Abril de 1997

Introdução

Quem já usou o TELNET ou o FTP para ter acesso a computadores remotos, já percebeu que as listagens dos comandos "dir" ou "ls -l" são compostas de varias colunas de informações. É facil identificar nessas listagens o nome, tamanho, data e dono dos arquivos. Mas o que são estes 10 caracteres do inicio das linhas? Para que servem?

  -rw-r--r--   1 lna  ftp-adm  181830 May 16 11:26 AAResources
  -rw-r--r--   1 lna  ftp-adm   53104 May 16 11:26 FAQ
  drwxr-xr-x   2 lna  ftp-adm     512 Oct 18  1995 Info
  drwxr-xr-x   2 lna  ftp-adm    1024 Oct 18  1995 Software
  -rw-r--r--   1 lna  ftp-adm   61905 Apr 15 05:37 Welcome

É possível alterá-los à vontade? Procuraremos responder a estas pergun- tas ao longo deste texto.

Geralmente os usuários conectados à Internet tem conta em uma maquina executando Unix ou Linux, mas os sistemas de janelas, ampla- mente utilizados atualmente, muitas vezes impedem que estes caracte- res sejam vistos.

Verificando quem pode ter acesso aos arquivos

Tres classes de usuários podem ter acesso aos arquivos: o dono (a pessoa que criou o arquivo), o grupo (usuários que são agru- pados pelo administrador do sistema) e os outros (todos os usuários conectados à rede). Os 10 primeiros caracteres das linhas listadas pelo "ls -l" ou "dir" definem precisamente o que os usuários de cada classe podem fazer com seus arquivos. Esses caracteres são cha- mados de modos de permissão dos arquivos. Para entender o que esses caracteres significam, separe-os em 4 grupos com 1, 3, 3 e 3 carac- teres:

  	     [ ]    [ ][ ][ ]    [ ][ ][ ]    [ ][ ][ ]
  	      |         |            |            |
  	     tipo     dono         grupo        outros
  

O primeiro caracter define o tipo de arquivo: se for um "-" entao É um arquivo normal. Se for um "d", É o nome de um direto- rio. Se for um "l" entao É um 'link' simbolico. Outras possibilida- des raramente utilizadas são "b", "c", "p" ou "s". Os outros 9 caracteres devem ser separados em 3 grupos de 3 caracteres: o primeiro grupo define as permissoes do dono do arquivo, o segundo grupo as permissoes do grupo de usuários e o terceiro define as permissoes de todos os outros usuários. Em cada grupo, as permissoes sempre aparecem na ordem leitura- escrita-execução. A permissão de leitura É sempre indicada com um "r", a permissão de escrita com um "w" e a permissão de execução com um "x". Permissão negada É indicada com um "-".

Exemplo: Entre as linhas que aparecem na listagem de diretorio que apresentamos no inicio deste texto, temos as duas linhas seguintes:

  -rw-r--r--   1 lna  ftp-adm   53104 May 16 11:26 FAQ
  drwxr-xr-x   2 lna  ftp-adm     512 Oct 18  1995 Info

Correspondendo ao nome "FAQ" temos as permissoes -rw-rr , que podem ser separadas da seguinte forma

  		      -     rw-     r--     r--
  		    tipo   dono    grupo   outros

O primeiro "-" significa que FAQ É um arquivo comum. As permissoes do dono de FAQ são "rw-", o que significa que o dono pode ler e es- crever no arquivo. As permissoes do grupo ou dos outros usuários É "r--" o que significa que eles podem apenas ler (ou copiar) o arqui- vo. Correspondendo ao nome "Info" temos as permissoes drwxr-xr-x. O tipo do arquivo É "d", ou seja, É um diretorio. As permissoes do dono são "rwx", isto É, o dono pode ler, escrever e executar o diretorio. "Executar o diretorio" significa poder "entrar" nele e e- ventualmente utilizar seus arquivos. As permissoes do grupo e de to- dos os outros usuários É "r-x", isto É, eles podem ler e executar mas nao podem escrever nada no diretorio.

Exemplo: Todos as mensagens que chegam para determinado usuário, via correio eletronico, são guardadas em um unico arquivo com nome igual ao nome de 'login' no subdiretorio /var/spool/mail (ou nome de cami- nho parecido). No meu caso, a listagem deste arquivo com o comando "ls -l" mostra a seguinte linha

  -rw-rw----   1 ccendm03   mail     18750 Jul  2 13:59 ccendm03

Isto significa que o dono (rw-) tem permissão de leitura e escrita neste arquivo, o grupo "mail" tambem tem as mesmas permissoes (rw-). Os outros usuários (---) nao podem ter acesso a ele. Resta saber quem são os usuários do grupo "mail" definidos pelo admistrador do sistema.

Alterando as permissoes de acesso a um arquivo

Use o comando 'chmod' para alterar as permissoes de um arquivo seu. Este comando pode ser usado de duas maneiras:

(1) chmod atribuição arquivo

onde "atribuição" É uma sequencia de caracteres formada por:

  • pelo menos um dos caracteres "u" (dono), "g" (grupo) ou
"o" (outros), indicando a(s) classe(s) que terá(ao) permissão alterada;
  • os sinais "+", "-" ou "=" indicando se a permissão será adicionada (+), retirada (-) ou definida (=);
  • pelo menos um dos caracteres "r" (leitura), "w" (escri- ta) ou "x" (execução) indicando as permissoes.

    Exemplo:
      %  chmod ugo=rw texto.doc
    
    Este comando determina que o dono, o grupo e todos os outros usuários tenham permissão de leitura e escrita no arquivo texto.doc. Desse modo, o comando "ls -l" mostrará algo parecido com
      -rw-rw-rw-   1 ccendm03   users    1200 Jul  5 20:09 teste.doc
      
      %  chmod go-w texto.doc
    
    Neste comando, são retiradas as permissoes de escrita no arquivo texto.doc para os usuários do grupo e tambem para todos os outros usuários:
      -rw-r--r--   1 ccendm03   users    1200 Jul  5 20:09 teste.doc
      
      %  chmod g+w texto.doc
    
    Agora, o grupo de usuários tambem terá permissão de escrita no arquivo texto.doc:
      -rw-rw-r--   1 ccendm03   users    1200 Jul  5 20:09 teste.doc
    

    (2) Outra forma de usar o 'chmod':

chmod numero arquivo

onde "numero" É um numero octal (base 8) formado por 3 algarismos, todos no intervalo de 0 a 7, de tal forma que a representação binaria com 9 digitos deste numero esteja relacionada aos modos de permissão da seguinte forma: 0 corresponda a permissão negada, 1 corresponda a permissão concedida.

Exemplo: chmod 644 Teste

644 em octal corresponde na representação binaria a 110100100. Logo as permissoes de Teste ficarao sendo rw-rr. O comando chmod nao altera o tipo: arquivo continua sendo arquivo e diretorio conti- nua sendo diretorio. Por exemplo, se Teste fosse um arquivo antes da aplicação do chmod, entao suas permissoes depois do uso do coman- do ficariam sendo -rw-rr.

Essa conversão octal <---> permissoes É feita facilmente se vo- ce observar a seguinte tabela

  	       ---------------------------------------
  	       numero    binario equiv.   permissoes
  	       ---------------------------------------
  		  0           000            ---
  		  1           001            --x
  		  2           010            -w-
  		  3           011            -wx
  		  4           100            r--
  		  5           101            r-x
  		  6           110            rw-
  		  7           111            rwx
  	       ---------------------------------------

Exemplo: chmod 625 teste.txt

Observando a tabela, o 6 corresponde a "rw-", o 2 corresponde a "-w-" e o 5 corresponde ao "r-x". Portanto, se texte.txt for um arquivo (tipo "-") as permissoes apos o chmod serao -rw--w-r-x .

Exemplos diversos

  =====================================================================
  Permissoes     Comando               Descrição
  ---------------------------------------------------------------------
  -r--------     chmod 400 arquivo     Somente o dono pode ler o arqui-
  				     vo, ninguem pode escrever.
  ---------------------------------------------------------------------
  -r--r--r--     chmod 444 arquivo     Todos podem ler o  arquivo, nin-
  				     guem pode escrever.
  ---------------------------------------------------------------------
  -rw-rw-rw-     chmod 666 arquivo     Todos podem  ler  e  escrever no
  				     arquivo.
  ---------------------------------------------------------------------
  drwxrwxrwx     chmod 777 diretorio   Todos podem ler, escrever, criar
  				     ou apagar arquivos do diretorio.
  ---------------------------------------------------------------------
  drwx------     chmod 700 diretorio   Somente o dono pode  ler, escre-
  				     ver, criar ou  apagar  arquivos.
  				     Ninguem mais pode  ter  acesso a
  				     este diretorio.
  ---------------------------------------------------------------------
  drwx-wx-wx     chmod 733 diretorio   O dono pode ler ou  escrever  no
  				     diretorio. Todos os  outros usu-
  				     arios podem apenas escrever.
  =====================================================================

Epilogo

Este texto foi adaptado em julho/1996 por Lenimar N. Andrade (endereco eletronico: <lenimar (a) mat ufpb br>) de uma apostila intitulada "Curso de Introdução ao Unix". Esta apostila foi elaborada em 1993 pela Coordenação de Informatica da Faculdade de Engenharia Mecanica da UNICAMP. Alem da apostila da F.E.M., foram acrescentados alguns fragmentos de informações obtidas com os comandos "man ls" e "man chmod".



Veja a relação completa dos artigos de Lenimar N. Andrade

 

 

Opinião dos Leitores

Tiago
07 Dez 2010, 00:42
Oi, como faço para meu arquivo no servidor ficar sem permissão para ninguém acessá-lo atravez do caminho completo e somente ser acessado carregado dentro de um filme flash, por exemplo:
Um arquivo swf que está sem permissão para velo atravez do endereço completo, mas que seja possivel carregalo para vizualização dentro de um swf principal, tem como?
Ricardo Martins
23 Ago 2010, 10:09
O artigo está muito bom, realmente tira muitas dúvidas.
Sei que não é um curso de Inglês mas acho que para gravar mais e ser mais completo poderia informar que:

r= read
w= write
x= execute

E informar a posição da base decimal das posições, para não ficar decorando a coluna Nrº com a coluna Binário equivalente na base octal.


4 2 1 = 7 Decimal

1 1 1 = 7 Octal


*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script