Вы находитесь на странице: 1из 11

https://www.infowester.com/linuxpermissoes.

php

Entendendo e usando permisses no Linux


Introduo
As permisses so um dos aspectos mais importantes do Linux (na verdade, de todos os
sistemas baseados em Unix). Elas so usadas para vrios fins, mas servem principalmente
para proteger o sistema e os arquivos dos usurios. Manipular permisses uma atividade
interessante, mas complexa ao mesmo tempo. Mas tal complexidade no deve ser
interpretada como dificuldade e sim como possibilidade de lidar com uma grande variedade
de configuraes, o que permite criar vrios tipos de proteo a arquivos e diretrios.
Como voc deve saber, somente o super-usurio (root) tem aes irrestritas no sistema,
justamente por ser o usurio responsvel pela configurao, administrao e manuteno do
Linux. Cabe a ele, por exemplo, determinar o que cada usurio pode executar, criar,
modificar, etc. Naturalmente, a forma usada para especificar o que cada usurio do sistema
pode fazer a determinao de permisses. Sendo assim, neste artigo voc ver como
configurar permisses de arquivos e diretrios, assim como modific-las.

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.

Configurando permisses com chmod


Nos tpicos anteriores voc dever tido pelo menos uma noo do que so permisses e de
sua importncia no Linux. Chegou a hora de aprender a configurar permisses e isso feito
atravs do comando chmod (de change mode). Um detalhe interessante desse comando
que voc pode configurar permisses de duas maneiras: simbolicamente e numericamente.
Primeiramente veremos o mtodo simblico.
Para ter uma viso mais clara da forma simblica com o chmod, imagine que tais smbolos
se encontram em duas listas, e a combinao deles gera a permisso:
Lista 1
Smbolo
u => usurio
g => grupo
O (letra 'o' maiscula) => outro
a => todos
Lista 2
Smbolo
r => leitura
w => gravao
x => execuo
Para poder combinar os smbolos destas duas listas, usam-se os operadores:
+ (sinal de adio) => adicionar permisso
- (sinal de subtrao) => remover permisso
= (sinal de igualdade) => definir permisso
Para mostrar como essa combinao feita, vamos supor que voc deseje adicionar
permisso de gravao no arquivo teste.old para um usurio. O comando a ser digitado :
chmod u+w teste.old
O "u" indica que a permisso ser dada a um usurio, o sinal de adio (+) indica que est
sendo adicionada uma permisso e "w" indica que a permisso que est sendo dada de
gravao.
Caso voc queira dar permisses de leitura e gravao ao seu grupo, o comando ser:
chmod g+rw teste.old
Agora, vamos supor que o arquivo teste.old dever estar com todas as permisses
disponveis para o grupo. Podemos usar ento:
chmod g=rwx teste.old

Repare que o arquivo teste.old tem permisses rwx para o grupo


Dica: crie arquivos e diretrios. Em seguida, teste a combinao de permisses com
chmod. Isso lhe ajudar muito no entendimento deste recurso.

Usando chmod com o mtodo numrico


Usar o chmod com valores numricos uma tarefa bastante prtica. Em vez de usar
letras como smbolos para cada permisso, usam-se nmeros. Se determinada
permisso habilitada, atribui-se valor 1, caso contrrio, atribui-se o valor 0. Sendo
assim, a string de permisses r-xr----- na forma numrica fica sendo 101100000. Essa
combinao de 1 e 0 um nmero binrio. Mas temos ainda que acrescentar a forma
decimal (ou seja, nmeros de 0 a 9). Para isso, observe a tabela abaixo:

Permisso Binrio 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
Se voc no conhece o sistema binrio deve estar se perguntando o que esse "monte" de 0 e
1 tem a ver com os nmeros de 0 a 7. Como o sistema binrio somente trabalha com os
nmeros 0 e 1 (decimal trabalha com os nmeros de 0 a 9, ou seja, o sistema de
numerao que utilizamos no nosso cotidiano), ele precisa de uma sequncia para
representar os valores. Sendo assim, na tabela acima, a coluna Binrio mostra como so os
valores binrios dos nmeros de 0 a 7 do sistema decimal.
Chegou a hora ento de relacionar a explicao do pargrafo acima com a coluna
Permisso. Para exemplificar, vamos utilizar a permisso rw-, cujo valor em binrio 110,
que por sua vez, em decimal corresponde ao nmero 6. Ento, em vez de usar rw- ou 110
para criar a permisso, simplesmente usa-se o nmero 6. Repare que, com o mtodo
numrico, usamos somente um dgito para representar uma permisso, em vez de trs.
Assim sendo, a string de permisses r--r--r-- pode ser representa por 444, pois r-- em
decimal igual a quatro. Observe o exemplo abaixo:
chmod 600 notas.txt

Permisses rw------- no arquivo notas.txt com o comando chmod 600


Acima, esto sendo dadas as permisses rw------- ao arquivo notas.txt, pois 6 equivale a
rw- e 0 equivale a ---. Como zero aparece duas vezes, forma-se ento o valor 600. Faa
o comando acima com um arquivo de teste e depois digite ls- l notas.txt para ver o que
aparece (notas.txt deve ser substitudo pelo arquivo que voc est usando). A tabela
abaixo mostra uma lista de configuraes bastante utilizadas:
Permisses rw------- no arquivo notas.txt com o comando chmod 600
Acima, esto sendo dadas as permisses rw------- ao arquivo notas.txt, pois 6 equivale a
rw- e 0 equivale a ---. Como zero aparece duas vezes, forma-se ento o valor 600. Faa
o comando acima com um arquivo de teste e depois digite ls- l notas.txt para ver o que
aparece (notas.txt deve ser substitudo pelo arquivo que voc est usando). A tabela
abaixo mostra uma lista de configuraes bastante utilizadas:

-------- 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!

Entendendo e usando permisses no Linux (Parte 2)


Introduo
Nesta segunda parte sobre entendimento e uso de permisses no Linux, vamos trabalhar
com os comandos umask, chown e chgrp. O primeiro comando permite manipular as
permisses padro (default) do sistema, o segundo usado para alterar o proprietrio do
arquivo ou diretrio e, por fim, o terceiro utilizado para mudar o grupo no qual um
arquivo/diretrio pertence.
Para voc entender esses recursos, extremamente importante que a primeira parte deste
assunto tenha sido lida. Isso porque os conceitos mostrados no primeiro artigo sero
aplicados aqui. Vamos l?

Trabalhando com permisses padro


Pode acontecer de voc, por exemplo, criar arquivos com permisses de leitura e gravao
para o proprietrio e para um grupo usando chmod. Neste caso, voc pode no ter permitido
nenhum acesso aos outros usurios do sistema. Mas muito provavelmente essa no era sua
inteno. Voc percebe ento que ao criar permisses em arquivos, as permisses padro
podem diferenciar. a que entra em cena o comando umask.
O umask (mscara de criao de arquivos) responsvel por controlar as permisses padro
dos arquivos. Mas h algo importante a citar em relao a esse comando: quando esta
instruo utilizada, ela pode, por exemplo, mostrar o valor 07. Neste caso, acrescenta-se
um 0 esquerda, transformando o valor em 007 (sempre que houver uma situao como
essa, deve-se interpretar como se houvesse mais um zero esquerda). Mas isso no significa
que o arquivo em questo tenha sido criado sem nenhuma permisso para o proprietrio e
para o grupo, e tenha sido dada permisses de leitura, gravao e execuo para todos os
demais. Na verdade, significa exatamente o contrrio! Vejamos o porqu:
O umask uma espcie de filtro pelo qual os arquivos passam para determinar suas
permisses. Se o valor da permisso for verdadeiro, continua no arquivo, caso contrrio,
dever sair. Observe o esquema abaixo para entender melhor:
Vamos transformar a mscara (no nosso caso, o valor 007) em um valor binrio:
007 => 000 000 111
Agora vamos alinhar esse valor com o equivalente em binrio para "todas as permisses
dadas", ou seja, 777 (este valor sempre usado neste tipo de operao) e fazer uma adio:
777 => 111 111 111
Ento,
000.000.111====>007
+111 111 111====>777
111.111.000

Repare no valor que resultou da adio. Quando h 0 + 1, o valor 1. Quando h 1 + 1 o


valor passa a ser 0 e no 2, pois no sistema binrio somente existem os valores 0 e 1 (no h
2 ou outros nmeros). Com os valores do resultado da adio do equivalente binrio para
007 e 777 em mos, vamos agora transform-los em um valor decimal:
111 111 000 => 770
Esse ento passa a ser o valor da permisso padro. Repare agora que o valor do umask
justamente o contrrio do valor normal, ou seja, quando algum quer, por exemplo, ter 770
como permisso padro para um arquivo, deve ento usar o valor 007, o oposto. Isso
significa que o umask vai dar permisso padro, ou seja, leitura, gravao e execuo para o
proprietrio e para o grupo, mas nenhuma permisso para os demais. Veja, essa situao
exatamente o contrrio de 007 se fosse usado chmod. Isso deixa claro que o umask sempre
trabalhar com o valor oposto. Isso pode, de fato, parecer confuso, por isso necessrio
raciocinar e praticar bastante para ter um entendimento claro do umask e de sua utilidade.
Por isso, vamos exercitar: crie um diretrio qualquer, por exemplo, iw, e digite:
umask 027 iw
Esse comando faz com que, por padro, os arquivos criados dentro do diretrio iw tenham
permisso total para o dono do arquivo, apenas permisso de leitura e execuo para o
grupo, e nenhuma permisso para os demais. Basta criar um arquivo qualquer dentro desse
diretrio e digitar "ls -l nome do arquivo" para ver que as permisses padro so justamente
essas, observe:

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.

Alterando a propriedade de um arquivo/diretrio


Como voc j deve saber, todo arquivo ou diretrio no Linux tem um dono e um grupo. E se
voc precisar, por algum motivo, transferir a "posse" desse arquivo/diretrio para outro
usurio? Fazer isso muito fcil! Para facilitar a compreenso, vamos fazer o seguinte:
transferir o arquivo guia.txt do usurio arthur para o usurio marvin. Para isso, faremos uso
do comando chown. Mas, antes de prosseguirmos, esteja atento ao seguinte detalhe: se voc
"transferir" a propriedade de um arquivo seu para um colega de trabalho, por exemplo, no
poder "tomar" o arquivo de volta. Somente seu colega, agora dono do arquivo, poder
devolv-lo a voc.
O procedimento para alterar a propriedade de arquivo consiste em primeiro informar quem
ser o novo proprietrio e ento indicar o arquivo ou diretrio. Antes de executar esse passo,
vamos digitar o comando "ls -l guia.txt" para comprovarmos que, de fato, arthur o dono
atual do documento:

Checando a propriedade do arquivo


Agora, vamos executar o procedimento de transferncia de propriedade de guia.txt para o
usurio marvin por meio do comando chown. Em seguida, vamos digitar novamente "ls -l
guia.txt" para mostrar que o processo foi bem sucedido:
chown marvin guia.txt
ls -l guia.txt

Transferindo a propriedade do arquivo para outro usurio


Em muitos casos, esse comando pode no ser permitido aos usurios (somente ao root) por
questes de segurana. Se voc usar o chown e aparecer um aviso de "Permission Denied"
ou "Command Not Found" ou equivalente, porque provavelmente seu usurio se encaixa
neste caso. Cabe ento ao root permitir a transferncia de propriedade dos arquivos. Para
isso, voc pode utilizar o comando sudo seguido da instruo de transferncia. Em poucas
palavras, o sudo uma espcie de lista de autorizao para que o seu e outros usurios
possam executar tarefas de poder administrativo. Se seu usurio tiver autorizao para isso,
o sudo pedir que voc informe sua senha na primeira vez que o comando for utilizado.
Note que, na imagem anterior, o comando sudo foi utilizado, ficando da seguinte forma:
sudo chown marvin guia.txt

Alterando o grupo de um arquivo/diretrio


Tambm possvel alterar o grupo de um arquivo ou diretrio. Para isso, pode ser
necessrio identificar o grupo no qual o arquivo pertence. Tal procedimento pode ser feito
com o comando "ls -lg nome do arquivo/diretrio". Veja o caso do nosso arquivo de
exemplo guia.txt:
Alterando o grupo de um arquivo Note na imagem anterior que o arquivo em questo
pertence ao grupo terra. Em seguida, foi transferido para o grupo infowester. Neste caso, o
comando utilizado foi chgrp. Basta digitar esse comando seguido do nome do novo grupo
mais o nome do arquivo. Veja como fica em nosso caso (repare que, novamente, o comando
sudo utilizado):
chgrp infowester guia.txt
Acima, o arquivo guia.txt foi transferido com sucesso para o grupo infowester. importante
citar que voc deve ser membro do grupo do qual o arquivo pertencia para poder transfer-
lo.

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.

Вам также может понравиться