user@lpi:~$ linux-essentials
Início / Tópico 5 · Segurança e permissões de arquivos / 5.4

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 -a pra 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.