Guia do Linux/Iniciante+Intermediário/Permissões de acesso a arquivos e diretórios/Permissões de Acesso Especiais

Permissões de Acesso Especiais

editar

Em adição as três permissões básicas (rwx), existem permissões de acesso especiais (stX) que afetam arquivos executáveis e diretórios:

  • s - Quando é usado na permissão de acesso do Dono, ajusta a identificação efetiva do usuário do processo durante a execução de um programa, também chamado de bit setuid. Não tem efeito em diretórios.

Quando s é usado na permissão de acesso do Grupo, ajusta a identificação efetiva do grupo do processo durante a execução de um programa, chamado de bit setgid. É identificado pela letra s no lugar da permissão de execução do grupo do arquivo/diretório. Em diretórios, força que os arquivos criados dentro dele pertençam ao mesmo grupo do diretório, ao invés do grupo primário que o usuário pertence. Ambos setgid e setuid podem aparecer ao mesmo tempo no mesmo arquivo/diretório. A permissão de acesso especial s somente pode aparecer no campo Dono e Grupo.

  • S - Idêntico a "s". Significa que não existe a permissão "x" (execução ou entrar no diretório) naquele lugar. Um exemplo é o chmod 2760 em um diretório.
  • t - Salva a imagem do texto do programa no dispositivo swap, assim ele será carregado mais rapidamente quando executado, também chamado de stick bit.

Em diretórios, impede que outros usuários removam arquivos dos quais não são donos. Isto é chamado de colocar o diretório em modo append-only. Um exemplo de diretório que se encaixa perfeitamente nesta condição é o /tmp, todos os usuários devem ter acesso para que seus programas possam criar os arquivos temporários lá, mas nenhum pode apagar arquivos dos outros. A permissão especial t, pode ser especificada somente no campo outros usuários das permissões de acesso.

  • T - Idêntico a "t". Significa que não existe a permissão "x" naquela posição (por exemplo, em um chmod 1776 em um diretório).
  • X - Se você usar X ao invés de x, a permissão de execução somente é afetada se o arquivo já tiver permissões de execução. Em diretórios ela tem o mesmo efeito que a permissão de execução x.
  • Exemplo da permissão de acesso especial X:
  • Crie um arquivo teste (digitando touch teste) e defina sua permissão para rw-rw-r-- (chmod ug=rw,o=r teste ou chmod 664 teste).
  • Agora use o comando chmod a X teste
  • digite ls -l
  • Veja que as permissões do arquivo não foram afetadas.
  • agora digite chmod o x teste
  • digite ls -l, você colocou a permissão de execução para os outros usuários.
  • Agora use novamente o comando chmod a X teste
  • digite ls -l
  • Veja que agora a permissão de execução foi concedida a todos os usuários, pois foi verificado que o arquivo era executável (tinha permissão de execução para outros usuários).
  • Agora use o comando chmod a-X teste
  • Ele também funcionará e removerá as permissões de execução de todos os usuários, porque o arquivo teste tem permissão de execução (confira digitando ls -l).
  • Agora tente novamente o chmod a X teste
  • Você deve ter reparado que a permissão de acesso especial X é semelhante a x, mas somente faz efeito quanto o arquivo já tem permissão de execução para o dono, grupo ou outros usuários.

Em diretórios, a permissão de acesso especial X funciona da mesma forma que x, até mesmo se o diretório não tiver nenhuma permissão de acesso (x).