quinta-feira, 15 de março de 2012

Permissões de arquivos no linux

No linux, todo arquivo possui suas permissões, que representam o nível de acesso para o dono do arquivo, para o grupo ao qual ele pertence e para os demais usuários.

As permissões são representadas por esse conjunto de letras na primeira linha da listagem vertical (ls -l):

-rw-------  1 sauron sauron     1675 2012-03-14 21:42 arquivo_1
-rwxr-xr-x  1 sauron sauron      396 2012-03-14 21:42 arquivo_2

r -> read, permissão de leitura do arquivo
w -> write, permissão de escrita no arquivo
x -> execute, permissão de execução do arquivo (no caso de um diretório, significa abrir/entrar o diretório)

Para alterar essas permissões utilizamos o comando chmod. Existem duas formas de alterar as permissões de um arquivo:

- Utilizando as letras que representam as operações (mais simples)
- Utilizando a representação octal (mais eficiente)

Utilizando as letras

Como foi mostrado antes, cada operação é representada por uma letra:

r -> read
w -> write
x -> execute

Cada usuário/categoria é, também, representado por uma letra:

u -> dono do arquivo. É a opção padrão.
g -> grupo ao qual o dono do arquivo pertence
o -> outros usuários (que não se encaixem nas opções anteriores)
a -> todos os usuários (aplica a permissão em todos os níveis: u, g e o)

Para alterar as permissões, utilizamos dois operadores:

+ -> adicionar permissão
- -> remover permissão

Exemplos:

sauron@mordor:~$ ls -l arquivo
-rw-r--r-- 1 sauron sauron 0 2012-03-15 20:10 arquivo
sauron@mordor:~$ chmod u-w arquivo
sauron@mordor:~$ ls -l arquivo
-r--r--r-- 1 sauron sauron 0 2012-03-15 20:10 arquivo
sauron@mordor:~$ chmod +w arquivo
sauron@mordor:~$ ls -l arquivo
-rw-r--r-- 1 sauron sauron 0 2012-03-15 20:10 arquivo
sauron@mordor:~$ chmod a+x arquivo
sauron@mordor:~$ ls -l arquivo
-rwxr-xr-x 1 sauron sauron 0 2012-03-15 20:10 arquivo
sauron@mordor:~$ chmod g-r,o-r arquivo
sauron@mordor:~$ ls -l arquivo
-rwx--x--x 1 sauron sauron 0 2012-03-15 20:10 arquivo


Utilizando o modo octal

Apesar de simples de aprentar, alterar as permissões utilizando as letras dá um pouco de trabalho. A maneira mais eficiente de fazer isso é utilizando o modo octal.
No modo octal, cada grupo de permissões possui uma representação octal, que é definida pela presença ou não de determinada permissão (bit ligado ou desligado).
Tabela representando o modo octal:

Permissão Bits ligados/desligados Representação octal
---0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx1117

Exemplos:

sauron@mordor:~$ ls -l arquivo
-rw-r--r-- 1 sauron sauron 0 2012-03-15 20:10 arquivo
sauron@mordor:~$ chmod 666 arquivo
sauron@mordor:~$ ls -l arquivo
-rw-rw-rw- 1 sauron sauron 0 2012-03-15 20:10 arquivo
sauron@mordor:~$ chmod 600 arquivo
sauron@mordor:~$ ls -l arquivo
-rw------- 1 sauron sauron 0 2012-03-15 20:10 arquivo
sauron@mordor:~$ chmod 777 arquivo
sauron@mordor:~$ ls -l arquivo
-rwxrwxrwx 1 sauron sauron 0 2012-03-15 20:10 arquivo

Nenhum comentário:

Postar um comentário