Académique Documents
Professionnel Documents
Culture Documents
php
Entendendo as permisses
drwx------ ... 2 wester ............. 512 Jan ... 29 23:30 .. Arquivos/
-rw-rw-r-- ... 1 wester ....... 280232 Dec .. 16 22:41... notas.txt
As linhas acima representam um comando digitado (ls -l) para listar um diretrio e suas
permisses. O primeiro item que aparece em cada linha (drwx----- e -rw-rw-r-) a forma
usada para mostrar as permisses do diretrio Arquivos e do arquivo notas.txt. esse item,
que recebe o nome de string, que vamos estudar. Um ponto interessante de citar que o
Linux trata todos os diretrios como arquivos tambm, portanto, as permisses se aplicam
de igual forma para ambos. Tais permisses podem ser divididas em quatro partes para
indicar: tipo, proprietrio, grupo e outras permisses. O primeiro caractere da string indica o
tipo de arquivo: se for "d" representa um diretrio, se for "-" equivale a um arquivo.
Entretanto, outros caracteres podem aparecer para indicar outros tipos de arquivos,
conforme mostra a tabela abaixo:
d => diretrio
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
s => socket
- => arquivo "normal"
Repare agora que no restante da string ainda h 9 caracteres. Voc j sabe o que significa o
primeiro. Os demais so divididos em trs grupos de trs, cada um representado o
proprietrio, o grupo e todos os demais, respectivamente. Tomando a linha 2 do exemplo (-
rw-rw-r-), desconsiderando o primeiro caractere e dividindo a string restante em 3 partes,
ficaria assim:
rw- => a primeira parte significa permisses do proprietrio
rw- => a segunda parte significa permisses do grupo ao qual o usurio pertence
r-- => a terceira parte significa permisses para os demais usurios
Vamos entender agora o que significa esses caracteres (r, w, x, -). H, basicamente, trs
tipos de permisses: leitura, gravao e execuo. Leitura permite ao usurio ler o
contedo do arquivo mas no alter-lo. Gravao permite que o usurio altere o arquivo.
Execuo, como o nome diz, permite que o usurio execute o arquivo, no caso de ser
executvel. Mas acontece que as permisses no funcionam isoladamente, ou seja, de forma
que o usurio tenha ou permisso de leitura ou de gravao ou de execuo. As permisses
funcionam em conjunto. Isso quer dizer que cada arquivo/diretrio tem as trs permisses
definidas, cabendo ao dono determinar qual dessas permisses habilitada para os usurios
ou no. Pode ser que uma determinada quantidade de usurios tenha permisso para alterar
um arquivo, mas outros no, por exemplo. Da a necessidade de se usar grupos. No caso, a
permisso de gravao desse arquivo ser dada ao grupo, fazendo com que todo usurio
membro dele possa alterar o arquivo. Note que necessrio ter certo cuidado com as
permisses. Por exemplo, do que adianta o usurio ter permisso de gravao se ele no tem
permisso de leitura habilitada?
Agora que j sabemos o significado das divises da string, vamos entender o que as letras r,
w, x e o caractere - representam:
r => significa permisso de leitura (read);
w => significa permisso de gravao (write);
x => significa permisso de execuo (execution);
- => significa permisso desabilitada.
A ordem em que as permisses devem aparecer rwx. Sendo assim, vamos entender a
string do nosso exemplo dividindo-a em 4 partes:
Linha 1:
drwx------ ... 2 wester ............... 512 Jan ... 29 23:30 .. Arquivos/
- um diretrio (d);
- o proprietrio pode alter-lo, grav-lo e execut-lo (rwx);
- o grupo no pode pode alter-lo, grav-lo, nem execut-lo (---);
- os demais usurios no podem alter-lo, grav-lo, nem execut-lo (---).
Linha 2:
-rw-rw-r-- ... 1 wester .......... 280232 Dec .. 16 22:41... notas.txt
- um arquivo (-);
- o proprietrio pode alter-lo, grav-lo, mas no execut-lo. Repare que como este arquivo
no executvel, a permisso de execuo aparece desabilitada (rw-);
- o grupo tem permisses idnticas ao proprietrio (rw-);
- o usurio somente tem permisso de ler o arquivo, no pode alter-lo (r--).
A tabela abaixo mostra as permisses mais comuns:
--- => nenhuma permisso;
r-- => permisso de leitura;
r-x => leitura e execuo;
rw- => leitura e gravao;
rwx => leitura, gravao e execuo.
-------- 000
r-------- 400
r--r--r-- 444
rw------- 600
rw-r--r-- 644
rw-rw-rw- 666
rwx------ 700
rwxr-x--- 750
rwxr-xr-x 755
rwxrwxrwx 777
As trs ltimas permisses da tabela so comumente usadas para programas e
diretrios.
Finalizando
Como voc viu, muito mais prtico utilizar o chmod com o mtodo numrico. Mas
voc pode ter ficado confuso com todo esse esquema de permisso. Mas no se sinta
culpado por isso (e tambm no ponha toda a culpa na ineficincia do autor para
explicar o assunto :D ). A questo que nos sistemas baseados em Unix, permisses so
um dos aspectos mais complexos existentes. Tal complexidade equivalente eficincia
do uso de permisses. Por isso, a melhor maneira de entender as permisses
treinando. Sendo assim, ao trabalho! Treine, crie permisses e veja seus resultados.
Boa aprendizagem!
Aplicando umask no diretrio iwNote que o arquivo no tem permisso de execuo para o
proprietrio e para o grupo porque no um arquivo executvel. Veja este caso para
entender melhor: ao trabalhar com 770 (mscara 007) com determinados arquivos, por que
alguns tm, na realidade, valor 660? Simplesmente porque o sistema sabe que para alguns
arquivos a permisso de execuo no faz sentido. Assim, ele oculta essa permisso e d ao
arquivo com permisso 770 o valor 660. Mesmo assim, recomendvel usar um valor com
permisso de execuo mesmo para arquivos de textos, pois pode haver um diretrio no
meio de tudo e, para este caso, a permisso de execuo vlida.
Vamos supor agora que voc queira que a permisso padro direcione os arquivos somente
ao proprietrio (isto , os outros usurios no tm acesso) e os deixe como leitura, ou seja,
voc quer ter a permisso r-x------. Para usar o umask necessrio usar o valor contrrio,
que -w-rwxrwx. Passando este valor para binrio, o resultado 010 111 111 e passando
para decimal, 277 (010 = 2, 111 = 7). Ento, o comando que deve ser usado : umask 277.
Lembre-se de um detalhe importante: as permisses padro so dadas aos arquivos e
diretrios assim que criados. Sendo assim, para alterar permisses particularmente usa-se o
comando chmod.
Finalizando
Uma das caractersticas que tornam sistemas operacionais baseados no Unix to seguros
o leque de possibilidades de permisses. Todo arquivo e diretrio precisa ter um dono,
assim como necessita ter configuraes de permisses para informar o que outros usurios
e grupos podem ou no fazer. Perceba ento que, sabendo configurar permisses, possvel
manter o sistema e suas funcionalidades bastante seguras. Por isso, a dica final : pratique
e explore as possibilidades de cada comando.