Permissões e Tipos de Arquivos no Linux
Colaboração: Jonas Roberto de Goes Filho
Data de Publicação: 24 de Dezembro de 2006
Cada arquivo no Linux possui permissões de acesso para usuários e grupos do sistema. Cada arquivo possui um conjunto de permissões associadas a ele. As permissões de acesso permitem que o administrador do sistema especifique, em cada arquivo, o que cada usuário, grupo ou o próprio sistema pode fazer.
Há três tipos básicos de permissões:
- (
r
) Leitura - (
w
) Escrita - (
x
) Execução
Quando não houver no arquivo quaisquer das três permissões básicas acima
citadas, então o símbolo de representação será um sinal de menos (-
).
As permissões são definidas em todos os arquivos para três tipos de usuários:
- Dono do arquivo
- Um Grupo de Usuários (o dono do arquivo não necessariamente precisa estar neste grupo)
- Quaisquer outros usuários excluindo o dono do arquivo
A notação de permissões é representada por 10 caracteres. São eles:
- O caractere da posição 1 representa o tipo de arquivo.
- Os caracteres das posições 2, 3 e 4 representam as permissões de acesso para o dono do arquivo.
- Os caracteres das posições 5, 6 e 7 representam as permissões de acesso para um grupo no arquivo.
- Os caracteres das posições 8, 9 e 10 representam as permissões de acesso para quaisquer outros usuários, excluindo o dono do arquivo.
Representação Numérica para Permissões Básicas
Dígito Octal | Notação | Valor Binário |
---|---|---|
0 | --- | 000 |
1 | --x | 001 |
2 | -w- | 010 |
3 | -wx | 011 |
4 | r-- | 100 |
5 | r-x | 101 |
6 | rw- | 110 |
7 | rwx | 111 |
Diferença de Permissões de Acesso entre Arquivos e Diretórios
Tipo de Acesso: Leitura
- Arquivo: Especifica se o conteúdo do arquivo pode ser acessado/lido/obtido ou não.
- Diretório: Especifica se o conteúdo do diretório pode ser listado ou não.
Tipo de Acesso: Escrita
- Arquivo: Especifica se o conteúdo do arquivo pode ser modificado ou não.
- Diretório: Especifica se o conteúdo do diretório pode ser modificado ou não. Ou seja, permite ou não criar ou deletar arquivos e diretórios dentro do diretório.
Tipo de Acesso: Execução
- Arquivo: Especifica se o arquivo pode ser executado.
- Diretório: Especifica se o diretório pode ser acessado ou não.
Permissões Especiais
SUID: Quando ativo, mantém as mesmas permissões do dono do arquivo quando este arquivo estiver em execução. Em diretórios não tem efeito.
SGID: Quando ativo, mantém as mesmas permissões do grupo do arquivo quando este arquivo estiver em execução. Em diretórios, força o grupo de novos arquivos e diretórios criados dentro dele para o mesmo grupo.
StickBit: Em arquivos, salva uma imagem do programa no dispositivo swap para ser carregado mais rapidamente. Em diretórios, para alterar ou remover um arquivo, será obrigatóriamente necessário ser o dono do arquivo ou o dono do diretório com o stick ativado.
Representação Numérica para Permissões Especiais
Dígito Octal | Valor Binário |
---|---|
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
SUID: se ativo, na posição 4, é colocado um (s
) no lugar de (x
), se
(x
) estiver ativo. Se (x
) não estiver ativo, é colocado um (S
) no lugar
de (-
).
Se ativo, é trocado:
"x
" por "s
" e "-
" por "S
"
SGID: se ativo, na posição 7, é colocado um (s
) no lugar de (x
), se
(x
) estiver ativo. Se (x
) não estiver ativo, é colocado um (S
) no lugar
de (-
).
Se ativo, é trocado:
"x
" por "s
" e "-"
por "S
"
Stick: se ativo, na posição 10, é colocado um (t
) no lugar de (x
), se
(x
) estiver ativo. Se (x
) não estiver ativo, é colocado um (T
) no lugar
de (-
).
Se ativo, é trocado:
"x
" por "t
" e "-
" por "T
"
Permissões Padrão
As permissões padrão são definidas por uma máscara. O valor de umask
é
o responsável por configurar as permissões corretas quando um arquivo
novo é criado no sistema.
Tipos de Arquivos
Símbolo | Descrição |
---|---|
- |
Arquivo regular |
d |
Diretório |
l |
Link |
c |
Dispositivo de caractere |
u |
Dispositivo de caractere sem buffer |
s |
Arquivo Socket |
p |
FIFO, Named Pipe |
b |
Dispositivo de bloco |
FIFO - Sigla para First In, First Out, que em inglês significa
primeiro a entrar, primeiro a sair. São amplamente utilizados para
implementar filas de espera. Os elementos vão sendo colocados no final
da fila e retirados por ordem de chegada. Pipes (|
) são um exemplo de
implementação de FIFO.
Buffer - É uma região de memória temporária, usada para escrita e leitura de dados. Normalmente, os buffers são utilizados quando existe uma diferença entre a taxa em que os dados são recebidos e a taxa em que eles podem ser processados.
Socket - É um meio de comunicação por software entre um computador e outro. É uma combinação de um endereço IP, um protocolo e um número de porta do protocolo.
Arquivos Sockets mais comuns:
/dev/printer socket socket local para lpd
/dev/log socket socket local para syslog
/dev/gpmdata socket multiplexador gpm de mouse
$ sudo apt-get install tcputils $ sudo tcplisten porta $ sudo tcpconnect host porta
Executar é realizar algo - fazer algo. Quando damos permissão de execução a um arquivo, permitimos que se faça tudo o que está especificado dentro deste arquivo, em ordem, desde o primeiro passo até o último passo.