Você está na página 1de 6

Chmod + dicas

By sc4rf4c3@post.com

Usando e entendendo permissões no


Linux
Resolvi montar essa pequena dica, sei que já existem várias, porém vou colocar algumas
dicas do chmod, porque onde trabalho fizeram o favor de setar um chmod -R 777 na
pasta /, aí o servidor ficou com permissão errada para todos os arquivos, tive que setar
as permissões arquivo por arquivo comparando com outra máquina com mesmo sistema
Slackware, pois não podíamoss desligar o servidor.

Exemplos de permissões nos arquivos:

drwxr-xr-x 19 root root 4096 Jan 5 16:56 ../


-rwxr-xr-x 1 root root 38812 Mar 9 2003 MAKEDEV*
-rw-r--r-- 1 root root 1162 Mar 9 2003 README.MAKEDEV
lrwxrwxrwx 1 root root 4 Oct 15 2003 X0R -> null
crw-rw---- 1 root root 10, 175 Mar 25 2001 agpgart
crw-rw---- 1 root root 1, 10 Mar 25 2001 aio
drwxr-xr-x 2 root root 4096 Jun 11 2002 amiraid/
crw-r--r-- 1 root root 10, 134 Jun 7 1996 apm_bios
crw-rw---- 1 root root 36, 8 Mar 25 2001 arpd
drwxr-xr-x 2 root root 4096 May 19 2002 ataraid/
crw-rw---- 1 root sys 10, 3 Jul 17 1994 atibm
crw-rw---- 1 root root 10, 186 Mar 25 2001 atomicps
crw-rw--w- 1 root sys 14, 4 Jul 18 1994 audio
crw-rw--w- 1 root sys 14, 20 Jul 18 1994 audio1
brw-r----- 1 root disk 29, 0 Feb 15 1995 aztcd
crw-r--r-- 1 root root 10, 128 May 24 1996 beep
drwxr-xr-x 2 root root 36864 Jun 3 2002 cciss/
lrwxrwxrwx 1 root root 8 Oct 15 2003 cdrom -> /dev/hdd
brw-r----- 1 root disk 24, 0 Jul 18 1994 cdu535
crw-rw---- 1 root root 67, 0 Mar 25 2001 cfs0

O primeiro caractere da string indica o tipo de arquivo. Se for "d" representa um


diretório, se for "-" equivale a um arquivo.

 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 modificá-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.

Atenção:

 ---: 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.

Vamos supor que o arquivo estava assim:

crwxrwxrwx 1 root disk 37, 128 Dec 11 1995 nht0

Dessa forma ele está errado. Sua forma correta é:

crw-r----- 1 root disk 37, 128 Dec 11 1995 nht0

Usei o comando:

# chmod 640 nht0

Alterando as permissões de crwxrwxrwx para crw-r-----. Note que sempre as letras


iniciais não mudam, ok?

O comando chmod -R seta as permissões no diretório e nos arquivos dentro dele,


cuidado com isso, foi o que fizeram aqui no meu servidor.

Use assim:

$ chmod [número] [nomedoarquivo]

Exemplo:

# chmod 755 apache

Comando Número Permissão


chmod 000 ---------
chmod 400 r--------
chmod 444 r--r--r--
chmod 600 rw-------
chmod 620 -rw--w----
chmod 640 -rw-r-----
chmod 644 rw-r--r--
chmod 645 -rw-r--r-x
chmod 646 -rw-r--rw-
chmod 650 -rw-r-x---
chmod 660 -rw-rw----
chmod 661 -rw-rw---x
chmod 662 -rw-rw--w-
chmod 663 -rw-rw--wx
chmod 664 -rw-rw-r--
chmod 666 rw-rw-r--
chmod 700 rwx------
chmod 750 rwxr-x---
chmod 755 rwxr-xr-x
chmod 777 rwxrwxrwx
chmod 4711 -rws--x--x

Outro detalhe, os símbolos:

 u: usuário
 g: grupo
 o: outros
 a: totos

Para mostrar como essa combinação é feita, vamos supor que você deseje adicionar
permissão de gravação no arquivo teste.txt para um usuário. Então o comando a ser
digitado será:

$ chmod u+w teste.txt

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.txt

vamos supor que o arquivo teste.old deverá estar com todas as permissões disponíveis
para o grupo. Podemos usar então:
$ chmod g=rwx teste.txt

Usar o chmod com valores numéricos é algo bastante prático. Em vez de usar letras
como símbolos para cada permissão, usam-se números. Se determinada permissão é
habilitada, atribui-se valor 1, caso contrário, atribui-se valor 0. Sendo assim, a string de
permissões r-xr----- na forma numérica fica 101100000. Essa combinação de 1 e 0 é um
número binário.

Mas temos ainda que acrescentar a forma decimal (ou seja, números de 0 a 9). Para isso,
observe a tabela abaixo:

Permissão Binário Decimal


--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
Entendento o comando chown
O comando chown executado pelo root permite alterar o proprietário ou grupo do arquivo ou
diretório, alterando o dono do arquivo ou grupo.

Abaixo alguns exemplos:

# chown usuário arquivo

# chown usuário diretório

Obs.: Para saber quem é o dono e qual o grupo que é o proprietário da pasta, basta dar o
comando:

# ls -l /

Desta forma você poderá ver os proprietários das pastas e dos arquivos.

Exemplo: passar o diretório mp3 que pertence a root, mas quero que o novo dono seja a daia,
então digite:

# chown daia /mp3

Onde daia é a nova proprietária da pasta mp3 e /mp3 é o diretório que foi mudado o
proprietário, lembrando que da forma como foi executado o comando acima, ele alterou
somente do diretório /mp3, as sub-pastas dentro dele continuam com o proprietário antigo.

Para incluir os sub-diretórios acrescente -R e exibir o resultado -c.

# chown -c -R daia /mp3

Outro exemplo é alterar o grupo que pertence o diretório. Por exemplo, o diretório /mp3
pertence a daia e o grupo é root. Quero que pertença ao grupo inf, fica assim:

# chown daia:inf /mp3

Para incluir os sub-diretórios acrescente -R e exibir o resultado -c.

# chown -c -R daia:inf /mp3

Bom, é isto. Espero que ajude, para saber mais sobre as permissões dos arquivos ou diretório,
ver meu artigo sobre o comando chmod.
chgrp
chgrp [opções] grupo arquivo/diretório
onde

 grupo : é o nome do novo grupo responsável pelo arquivo/diretório.


 arquivo/diretório : nome do arquivo/diretório que terá o domínio alterado.

Descrição

Este comando altera o nome do grupo responsável pelo arquivo/diretório.

Algumas opções do comando

 -R : altera, recursivamente, o grupo de um diretório e de todos os arquivos e diretórios


que estão abaixo do diretório em questão.
 -c : informa quais arquivos/diretórios estão tendo o nome do grupo alterado.
 -v : informa quais arquivos/diretórios estão sendo processados (não necessariamente
alterados).

Exemplo

Suponha, por exemplo, a existência de um diretório de nome teste. Queremos que este
diretório e todo o seu conteúdo passe a pertencer ao grupo desenvolvimento. Podemos,
então, digitar o comando

chgrp -Rc desenvolvimento teste

para alterar o grupo do diretório teste e de todos os arquivos e diretórios que estão
hierarquicamente abaixo do diretório teste. Como a opção -c é usada, será mostrada a
lista dos arquivos e diretórios que tiveram o nome do grupo alterado.

Tópicos relacionados

 chown : altera o dono e/ou o grupo de arquivos/diretórios.


 chmod : altera as permissões do dono e do grupo de arquivos/diretórios.

Você também pode gostar