5.4 — Diretórios e arquivos especiaisTópico 5: Segurança e permissões de arquivospeso 3
O que você precisa entender
Alguns diretórios e tipos de arquivo têm comportamento especial em relação a permissões: /tmp (todo mundo escreve, mas não apaga o arquivo dos outros), links simbólicos, e bits especiais de permissão.
/tmp e o sticky bit
/tmp é um diretório onde qualquer usuário pode criar arquivos, mas por causa do sticky bit, um usuário só pode apagar/renomear os próprios arquivos — não os de outros usuários, mesmo tendo permissão de escrita no diretório.
ls -ld /tmp
# drwxrwxrwt ... <- repare o "t" no final: esse é o sticky bit
chmod +t pasta/ # adiciona sticky bit
chmod 1777 pasta/ # 1 na frente = sticky bit (equivalente ao +t), junto com 777
Outros bits especiais (menos cobrados, mas bom saber)
| Bit | Símbolo | Efeito |
|---|---|---|
| SUID | s no lugar do x do dono |
Arquivo executa com a permissão do dono, não de quem roda (ex: passwd) |
| SGID | s no lugar do x do grupo |
Em diretório: novos arquivos herdam o grupo da pasta, não do usuário |
| Sticky bit | t no lugar do x de outros |
Só o dono do arquivo pode apagá-lo dentro daquele diretório |
Links: simbólico vs físico (hard link)
| Tipo | Comando | Característica |
|---|---|---|
| Link simbólico (soft link) | ln -s origem destino |
É um "atalho" — aponta pro caminho do arquivo original. Se o original for apagado, o link quebra. |
| Link físico (hard link) | ln origem destino |
Aponta pro mesmo dado no disco (mesmo inode). Continua funcionando mesmo se o "original" for apagado. |
ln -s /caminho/original.txt atalho.txt # cria link simbólico
ls -l atalho.txt # aparece com "l" no início e uma seta -> pro destino
Arquivos ocultos e arquivos de configuração do usuário
- Arquivos começando com
.são ocultos (ls -apra ver). - Ficam geralmente na home do usuário:
~/.bashrc,~/.ssh/,~/.config/.
Termos-chave
- Sticky bit (
/tmp), SUID, SGID - Link simbólico vs link físico (hard link)
- Inode — o "endereço" real de um arquivo no disco
- Arquivo oculto (dotfile)
Comandos para testar
# 1. Ver o sticky bit no /tmp
ls -ld /tmp
# 2. Criar um arquivo e um link simbólico pra ele
echo "conteudo original" > original.txt
ln -s original.txt atalho.txt
ls -l atalho.txt
cat atalho.txt
# 3. Apagar o original e ver o link quebrado
rm original.txt
cat atalho.txt 2>&1 # deve dar erro "arquivo não encontrado"
# 4. Ver arquivos ocultos na home
ls -a ~
# 5. Ver o inode de um arquivo (número que identifica o dado no disco)
ls -i /etc/passwd
📌 Exercício prático
Dentro de /tmp, crie um arquivo com seu usuário normal (touch /tmp/meuarquivo.txt). Depois, tente (sem sudo) apagar um arquivo de outro usuário dentro de /tmp — se não tiver nenhum à mão, entenda o conceito: por causa do sticky bit, mesmo com permissão de escrita no diretório /tmp, você não conseguiria apagar arquivos que não são seus. Por fim, crie um link simbólico pro seu ~/.bashrc em algum outro lugar (ln -s ~/.bashrc ~/atalho-bashrc) e confirme com ls -l que ele aparece com l e uma seta pro destino.