Vous êtes sur la page 1sur 10

Permissões de acesso a arquivos e diretórios

Neste capítulo estudaremos o sistema de permissões no Linux que


permite ao administrador do sistema (root) definir o nível de permissão
de acesso dos usuários, grupos e outros aos arquivos e diretórios e
programas executáveis.

As permissões de acesso protege o sistema de algumas invasões e


respectivos programas não autorizados. Por exemplo no Linux, podemos
impedir que algum programa malicioso instale na maquina, delete algum
arquivo ou que seja transferido algum deles para outras pessoas via rede,
de modo a invadir o sistema.

O Linux assim como sistemas BSD derivados do Unix, são muito seguros e
confiáveis, podendo ser utilizado para o seu micro ou sua empresa.

Permissões de acesso e privilégios

O Linux gerencia o sistema de privilégios em 3 tipos:

• privilégio de dono
• privilégio de grupo
• privilégio de outros

1
E cada um desses tipos são divididos em 3 níveis de permissões de
acesso

• permissão de leitura ( r )
• permissão de escrita ( w )
• permissão de execução ( x )

Geralmente os arquivos e diretórios são criados com uma permissão


padrão, mas podendo ser modificadas pelo comando umask que
veremos adiante especificado nos arquivos /etc/profile que define para
todos os usuários do sistema e no arquivo do usuário
/home/usuario/.bash_profile no Debian ou /home/usuario/.profile no
Ubuntu.

Permissões padrões para diretórios:

• dono - ler (r), escrever (w) e executar (x)


• grupo - ler (r) e executar (x)
• outros - ler (r) e executar (x)

Permissões padrões para arquivos:

• dono - ler (r) e escrever (w)


• grupo - ler (r)
• outros - ler (r)

Donos, grupos e outros


Donos

É aquele usuário que criou o arquivo ou diretório, ou o dono definido pelo


administrador do sistema (root) para um determinado arquivo ou
diretório.

2
Corresponde ao arquivo ou o diretório do usuário. O nome do dono do
arquivo/diretório é o mesmo do usuário usado para entrar no sistema. As
permissões de acesso somente pode ser modificadas pelo dono. O id do
usuário e o nome do grupo são gravados /etc/passwd e /etc/group. Por
se tratarem de arquivos texto, Devemos tomar muito cuidado ao
edita-los, pois eles possuem as informações de usuários e grupos do
sistema.

Grupos

É o grupo ao qual o usuário dono pertence e seu arquivo de configuração


está localizado em /etc/group, esse recurso possibilita que vários
usuários tenham acesso ao mesmo arquivo do sistema. Cada usuário
pode pertencer a um ou mais grupos podendo acessar arquivos
pertencentes ao mesmo grupo que o seu, mesmo eles sendo de outro
dono.

Outros

São grupos externo de usuários que não pertencem ao grupo padrão do


arquivo ou diretório. Quando é criado um novo usuário, o grupo que ele
pertencerá corresponde o mesmo de seu primeiro grupo, sendo o ID do
grupo chamado de GID (Group ID). O usuário no entanto poderá ser
inserido em mais grupos se desejar.

Visualizando privilégios e permissões


Exemplo:

$ ls -l /home/usuario (visualiza privilégios e permissões de


arquivos)
$ ls -ld /home/usuario (visualiza privilégios e permissões de

3
diretórios)
$ ls -la /home/usuario (visualiza privilégios e permissões
de arquivos ocultos)

1ª 2ª 3ª 4ª 5ª
6ª coluna 7ª coluna
coluna coluna coluna coluna coluna
drwxr-xr-x
2 aluno1 aluno1 4096 2008-01-03 08:40 Desktop

-rwxr-xr-x 1 aluno1 aluno1 46801 2007-11-08 17:46 LINUXBRASIL.

Na tabela acima as permissões são exibidas na 1ª coluna e os privilégios


na 3ª coluna(dono) e na 4ª coluna(grupo). A 1ª coluna contém 10 traços (-
- - - - - - - - -) onde começam ou não com uma letra ou caractere no
começo da linha.

Na 2ª coluna é exibida o quantidade de hard links (referência direta ao


arquivo) para o arquivo ou diretório, cada vez que for acrescentado um
link para o arquivo é incrementado +1.

Para diretórios são contados dois hards links: O link para o diretório pai e
o link do arquivo especial, representado por um ponto " . " dentro do
próprio diretório.

Exemplo para diretórios:

$ mkdir /home/usuario/teste
$ ls -la /home/usuario/teste
$ cd /home/usuario/teste
$ ls -a (exibe o próprio diretório e o diretório anterior (pai))
$ ls . (exibe o próprio diretório)
$ ls .. (exibe o diretório anterior (pai))

4
Exemplo para arquivos:

$ cd /home/usuario/teste
$ touch arquivo1
$ ln -s arquivo1 link1 (com a opção -s, não entra na contagem de hard
links)
$ ln arquivo1 link2 (sem a opção -s, entra na contagem de hard links)

Para saber a contagem de hard links e inodes(blocos de informações),


será necessário usar o comando ls -li.

$ ls -li
total 0
1149147 -rw-r--r-- 2 aluno1 aluno1 0 2008-01-03 11:34 arquivo1
1149180 lrwxrwxrwx 1 aluno1 aluno1 8 2008-01-03 11:34 link1 ->
arquivo1
1149147 -rw-r--r-- 2 aluno1 aluno1 0 2008-01-03 11:34 link2

Repare na 1ª coluna a quantidade de inodes e na 3ª coluna a quantidade


de links são a mesma entre o arquivo1 e o link2, já o link1 não entra na
contagem de links.

• Obs - os links simbólicos (atalhos para arquivos) não interferem na


contagem de hard links (referência direta ao arquivo).

Na 5ª coluna o tamanho em bytes do arquivo ou diretório podendo


ser exibidos pelo comando ls -lh (em KB, MB e GB), na 6ª coluna a
data e hora da última modificação e na 7ª coluna o nome do arquivo
ou diretório.

A primeira posição do traço (-) representado por uma letra ou por um


hífen - , que indica o tipo do arquivo e os 9 traços (- - - - - - - - -)

5
restantes são exibidas as permissões de acesso dividas em 3 colunas com
3 traços (- - -) cada uma podendo ter permissões de leitura (r), escrita (w)
e execução (x).

1ª coluna 2ª coluna 3ª coluna 4ª coluna


- --- --- ---
d rwx r-x r-x
- rwx r-x r-x

Uma letra representa uma permissão e um ou mais traços representam


permissões negadas, sendo assim os 10 traços são divididos em 4
colunas onde na 1ª coluna é exibido o tipo de arquivo, na 2ª coluna são
exibidas as permissões do dono, na 3ª coluna são exibidas as permissões
do grupo e na 4ª coluna são exibidas as permissões de outros.

Na 1ª coluna é onde define o tipo de arquivo que pode ser:

Tipo de arquivo Significado


- Arquivo simples de texto ou executável
d Diretórios
| Links simbólicos
c Dispositivos de caractere
b Dispositivos de blocos
s Soquetes
= Pipes

Na 2ª coluna, 3ª coluna e 4ª coluna são exibidas as permissões de acesso


que podem ser:

Permissão de
Significado
acesso
r Permissão para leitura

6
w Permissão para escrever
Permissão para executar. (para diretórios permite a
x
navegacão pelo diretório através do comando cd)

Tipos de permissões

Quanto aos tipos de permissões aplicadas ao dono, grupo e outros


usuários, temos 3 permissões básicas, ao qual podemos visualizar abaixo:

A letra inicial nos indica que tipo de arquivo estamos trabalhando no


momento. Um "-" significa que é um arquivo comum. Caso for um "d" é
considerado um diretório, e um "l" um link simbólico direcionando a um
arquivo do sistema.

O primeiro campo "rwx", nos mostra qual é a permissão de acesso ao


campo "usuário". Neste caso o usuário possui a permissão de ler (r),
escrever (w) e executar (x).

O segundo "rwx" nos mostra as permissões de acesso ao grupo do


arquivo. Neste caso, o grupo possui permissão de ler (r), escrever (w), e

7
executar(x).

O terceiro campo "rwx", nos mostra qual é a permissão de acesso para os


"outros grupos". Neste caso todos os usuários que não são donos do
arquivo, e nem fazem parte do grupo "outros grupos" possuem permissão
para ler(r) , escrever(w) e executar(x).

Permissões simbólicas
Permissões simbólicas, são expressões de permissões, diferentes de
valores octais que atribuem permissões facilmente a arquivos e diretórios
podendo ser aplicadas através de letras, operadores e valores separados
por uma vírgula.

Abaixo temos a tabela correspondente a letra e sua representação:

Letra Representação
u Usuário
g Grupo
o Outros
a Todos
Operador Representação
+ Adicionar permissões
- Remover permissões
= Definir permissões diretamente
Valor Representação
r Leitura
w Escrita
x execução
t Bit de sticky
s Define UID ou GID

8
Permissões Octais

No modo octal (opcional), você poderá modificar facilmente a permissão


do dono, grupo e outros, sem precisar gerenciar cada um separadamente
especificando uma permissão numérica especial, o dono, o grupo e
outros.

Abaixo temos a seguinte tabela especificando a permissão especial:

Permissão
Descrição
especial
0 Nenhuma permissão especial ativada
1 Bit sticky ativado - permissão de execução (x)
2 Bit setgid ativado - permissão de escrita (w)
Bits sticky e Bit setgid ativados - permissão de escrita
3
e execução (wx)
4 Bit setuid ativado - permissão de leitura (r)
Bits sticky e Bit setuid ativados - permissão de leitura
5
e execução (rx)
Bits setuid e Bit setgid ativados - permissão de leitura
6
e escrita (rw)
Bits setuid, setgid e sticky ativados - permissão de
7
leitura, escrita e execução (rwx)
Abaixo temos a seguinte tabela especificando as permissões do dono,
grupo e outros:

Dono, Grupo e Outros Descrição


0 Nenhuma permissão
1 Permissão de execução (x)
2 Permissão de escrita (w)
3 Permissão de escrita e execução (wx)
4 Permissão de leitura (r)

9
5 Permissão de leitura e execução (rx)
6 Permissão de leitura e escrita (rw)
7 Permissão de leitura, escrita e execução (rwx)

Permissões Especiais
No Linux não existem somente as permissões padrões (rwx), existem
também as permissões de acesso especias, que permitem um controle a
mais sobre as permissões padrões:

Bit Significado
Quando este bit estiver ativado, o arquivo pode ser executado
Setuid
como dono do arquivo. (não utilizado em diretórios)
Quando este bit estiver ativado, o arquivo pode ser executado
como um membro do grupo do arquivo. (quando um arquivo é
Setgid
criado dentro de um diretório com este bit ativado, o arquivo
será criado com o mesmo nome do grupo do diretório)
Quando este bit estiver ativado em um diretório, um arquivo
Sticky
criado neste diretório somente poderá ser apagado pelo dono.

10

Vous aimerez peut-être aussi