Objetivos
O objetivo deste artigo é apresentar os fundamentos e comandos relacionados ao gerenciamento de privilégios no Linux. Através deste guia, você poderá:
- Entender como funcionam os privilégios no Linux.
- Aprender a gerenciar privilégios de diversos usuários.
Introdução
O gerenciamento de privilégios é uma funcionalidade essencial dos sistemas operacionais Linux. Ele permite aos administradores definirem políticas de acesso para usuários e grupos, restringindo ou concedendo permissões a arquivos, diretórios e programas. Isso garante segurança e organização no uso do sistema.
Permissões e Privilégios
Organização de Arquivos
Os arquivos no Linux são organizados em diretórios, e o sistema oferece mecanismos robustos de proteção. Cada arquivo ou diretório possui regras de acesso, que garantem que apenas os usuários autorizados possam realizar ações específicas.
Classes de Privilégios
As permissões no Linux são classificadas em três grupos:
- Dono: Geralmente, é o criador do arquivo ou quem o superusuário designar.
- Grupo: Representa os usuários de um grupo ao qual o dono pertence.
- Outros: Todos os outros usuários do sistema que não pertencem ao grupo.
Níveis de Permissões
Cada classe tem três tipos de permissões:
- Leitura (r): Permite visualizar o conteúdo do arquivo ou listar o diretório.
- Escrita (w): Permite alterar ou deletar o conteúdo do arquivo/diretório.
- Execução (x): Permite executar arquivos ou acessar diretórios.
Bits de Atributos Especiais
Além das permissões básicas, o Linux inclui bits especiais que alteram o comportamento dos arquivos:
- Setuid
- Quando ativado, o arquivo é executado como se fosse pelo dono.
- Exemplo: Aplicativos administrativos que necessitam de permissões de superusuário.
- Setgid
- Faz com que o arquivo seja executado como se fosse por um membro do grupo proprietário.
- Nos diretórios, arquivos criados herdam o grupo do diretório.
- Sticky
- Um arquivo com esse bit só pode ser excluído pelo seu próprio dono.
- Usado em diretórios compartilhados, como
/tmp
.
Listagem de Privilégios
Para listar privilégios, utiliza-se o comando:
ls -l
Interpretação da Saída
A saída desse comando exibe permissões e outros detalhes. Um exemplo de linha:
-rw-r--r-- 1 usuario grupo 1024 Nov 26 15:00 exemplo.txt
- Primeiro caractere: Tipo de arquivo (
-
para arquivo comum,d
para diretório, etc.). - Próximos 9 caracteres: Permissões organizadas em três blocos:
- Dono (
rw-
no exemplo). - Grupo (
r--
). - Outros (
r--
).
- Dono (
- Outros campos incluem o número de links, dono, grupo, tamanho e data de modificação.
Tipos de Arquivos no Linux
Tipo de Arquivo | Descrição |
---|---|
- |
Arquivo comum |
d |
Diretório |
l |
Link simbólico |
c |
Dispositivo de caractere |
b |
Dispositivo de bloco |
s |
Soquete |
= |
Pipe |
Gerenciamento de Privilégios com chmod
O comando chmod
permite alterar permissões de arquivos ou diretórios. Sua sintaxe é:
chmod [opções] modoarquivo arquivo
Opções Principais:
-c
: Mostra informações sobre os arquivos modificados.-f
: Suprime mensagens de erro.-R
: Aplica recursivamente (em subdiretórios).-v
: Descreve as alterações realizadas.
Modos de Configuração
Existem dois modos para configurar permissões: Simbólico e Absoluto.
Modo Simbólico
O modo simbólico utiliza identificadores, operandos e valores:
- Identificadores:
u
: Usuário.g
: Grupo.o
: Outros.a
: Todos.
- Operandos:
+
: Adiciona permissão.-
: Remove permissão.=
: Substitui permissão.
- Valores:
r
: Leitura.w
: Escrita.x
: Execução.s
: Bits setuid/setgid.t
: Bit sticky.
Exemplos:
- Permitir execução para o dono:
chmod u+x script.sh
- Permitir leitura para outros, remover escrita do grupo:
chmod o+r,g-w arquivo.txt
Modo Absoluto
No modo absoluto, as permissões são representadas por números:
Valor | Permissões |
---|---|
0 | Nenhuma |
1 | Execução |
2 | Escrita |
3 | Execução e Escrita |
4 | Leitura |
5 | Leitura e Execução |
6 | Leitura e Escrita |
7 | Leitura, Escrita e Execução |
Exemplos:
- Permitir tudo para o dono, leitura/execução para o grupo e nada para outros:
chmod 750 script.sh
- Permitir tudo para todos:
chmod 777 script.sh
Outros Comandos
chown
Troca o dono de um arquivo ou diretório:
chown [opções] novo_dono[.novo_grupo] arquivo
Exemplo:
chown paulo arquivo.txt
chgrp
Troca o grupo de um arquivo ou diretório:
chgrp [opções] novo_grupo arquivo
Exemplo:
chgrp professores relatório.doc
Arquivos de Configuração Importantes
/etc/passwd
- Armazena informações de usuários (exceto senhas).
/etc/shadow
- Armazena senhas e outras informações sobre os usuários.
/etc/group
- Contém detalhes sobre os grupos.
Gerenciamento de Usuários e Grupos
Para criar novos usuários:
useradd [opções] usuário
Opções principais:
-d
: Define o diretório home.-g
: Define o grupo.-s
: Especifica o shell padrão.-e
: Define a data de expiração da conta.
Exemplo:
useradd -d /home/joao -g usuarios -s /bin/bash joao
Conclusão
O gerenciamento de privilégios é uma parte essencial da administração de sistemas Linux. Ele garante segurança e organização, permitindo que o administrador controle o acesso a recursos do sistema. Dominar comandos como chmod
, chown
e chgrp
, bem como compreender os diferentes níveis de permissões, é fundamental para qualquer profissional ou entusiasta de Linux.