iniciantes
Combinações diferentes podem ser usadas
para deixar seus dados armazenados de forma segura no Linux
Por ser um sistema operacional
multiusuário e multitarefa, o Linux possui sistemas de controle que
asseguram a integridade dos dados e do sistema. Um destes sistemas é a
permissão de diretórios e arquivos. Veremos neste artigo uma breve
introdução sobre estas permissões.
Cada arquivo ou diretório possui
basicamente três conjuntos de permissões de acesso: permissão para leitura
(representado pela letra r - read),
para escrita (representado pela letra w - write) e para execução (representado
pela letra x - execute). O comando ls -l mostra estas permissões:
drwxr-x— 10 usuario users
4096 May 21 04:10 pasta
-rw-rw-r— 1 usuario users
948 Jun 5 16:43 texto.txt
A primeira coluna mostra as
permissões do arquivo. A primeira letra representa o tipo de arquivo
(d=diretório, l=link simbólico, etc) e as letras seguintes são as permissões.
As três primeiras letras representam as permissões do dono do arquivo, as
próximas três representam o grupo do arquivo e as três últimas representam
as permissões para os outros usuários do sistema. Veja que o dono do
di-re-tório pasta pode ler, escrever, editar e
‘executar’ o dire-tório (o x, neste caso, significa permissão de
mudar para o diretório com o comando cd); usuários pertencentes ao
grupo users podem ler e acessar o diretório, e os
outros usuários do sistema não têm permissão nenhuma para o diretório, ou
seja, não podem ler, escrever ou aces-sar o diretório pasta. Já o arquivo texto.txt pode ser lido e editado pelo dono e
pelo grupo. Outros usuários (não pertencentes ao grupo e que não sejam o
dono) podem apenas ler o arquivo.
Cada permissão tem um valor
numérico correspondente:
r = 4
w = 2
x = 1
Somando os números, obtemos:
Permissão Valor
Significado
--- 0 Sem permissões
r-- 4 Apenas leitura
rw- 6 Ler e gravar
rwx 7 Ler, gravar e executar
r-x 5 Ler e executar
--x 1 Somente executar
Desta forma,
a permissão do arquivo será composta por três números.
Veja as
combinações mais utilizadas:
Permissão Valor
Significado
-rw------- 600 Somente o dono possui permissão
para ler e
escrever no arquivo.
-rw-r--r-- 644 O dono possui permissão para
ler e escrever;
o grupo e
outros podem
apenas ler o arquivo.
-rw-rw-rw- 666 Todos podem ler e escrever no arquivo.
-rxw------ 700 Somente o dono possui permissão para
ler,
escrever e
executar o arquivo.
-rwxr-xr-x 755 O dono possui permissão para
ler, escrever e
executar o arquivo;
o grupo e outros
podem ler e executar o arquivo.
-rwxrwxrwx 777 Todos podem ler, escrever e executar o
arquivo.
-rwx--x--x 711 O dono possui permissão para ler,
escrever
e executar o
arquivo; o grupo e outros podem
apenas executar
o arquivo.
drwx------ 700 Somente o dono possui permissão para ler,
escrever e
acessar o diretório.
drwxr-xr-x 755 O dono pode ler, escrever e acessar o
diretório; o
grupo e outros
podem ler e acessar o diretório.
drwx--x--x 711 O dono pode ler, escrever e acessar o
diretório;
o grupo e
outros podem apenas acessar o diretório,
mas não podem
listá-lo com o comando
ls.
O comando para alterar as
permissões de arquivos e diretórios é o
chmod. Sua sintaxe é:
chmod
--opções XXX arquivo
onde XXX são
as permissões desejadas para o arquivo, seguindo o formato numérico.
Opções para o chmod:
-c ou
--changes Descreve todas as
alterações
de permissão
efetuadas nos arquivos.
-f ou
--silent, --quiet Não
imprime mensagens de erro.
-v ou
--verbose Descreve de modo
verboso todas
as alterações de
permissão efetuadas no arquivo.
--reference=FILE Utiliza o modo de referência FILE
em vez da
combinação de números
-R ou
--recursive Altera
recursivamente as permissões
de arquivos e
diretórios.
--help Mostra o texto de ajuda.
Exemplos
Para alterar recursivamente as
permissões de um diretório, em modo verboso:
$ chmod
-R -v 755 /home/usuario/bin/
mode of
/home/usuario/bin retained as 0755 (rwxr-xr-x)
mode of
/home/usuario/bin/compila-sgml changed to 0755 (rwxr-xr-x)
mode of
/home/usuario/bin/burnallgifs retained as 0755 (rwxr-xr-x)
Para alterar apenas a permissão
de um único arquivo:
$ chmod
640 arquivo.txt
Para alterar as permissões de
todos arquivos .txt do diretório atual:
$ chmod
600 *.txt
Observações: Se o usuário não for o dono do arquivo e não
possuir permissão para alterá-lo, o comando não terá qualquer efeito. Links
simbólicos não podem ter as permissões alteradas. Ao contrário, o comando chmod vai alterar as permissões do arquivo
apontado pelo link. Porém, se o chmod for
utilizado recursivamente, nenhum arquivo apontado pelos links simbólicos
será alterado. Um programa não é executável, a não ser que seu arquivo
tenha permissão para execução, não importando se a extensão do programa é .exe ou não.
Para saber mais
man chmod
info chmod
Fabio Minami
minami@RevistadoLinux.com.br
|