Os executáveis setuid podem ser desativados nas opções de montagem do sistema de arquivos, a opção é chamada nosuid
. Isso sempre é feito para sistemas de arquivos que podem ser montados por usuários não confiáveis (a opção user
mount em /etc/fstab
implica automaticamente nosuid
) ou cujo conteúdo pode ser modificado arbitrariamente por usuários não confiáveis, por exemplo, em mídia removível ou pela rede de máquinas que não são totalmente confiáveis. Às vezes também é feito para outros sistemas de arquivos.
Muitos sistemas usam tmpfs para /tmp
: um sistema de arquivos cujo conteúdo permanece na memória e não é preservado em um reinicialize. (Um sistema de arquivos tmpfs pode ser mais rápido do que confiar no cache de disco porque não precisa se preocupar com a consistência dos dados.) Algumas configurações montam com a opção nosuid
, porque geralmente não há nenhuma chamada para arquivos temporários setuid e ocasionalmente isso pode fazer parte de um vetor de ataque (arquivos setuid em /tmp
não são um risco de segurança per se, mas desabilitá-los pode limitar o dano causado por algumas vulnerabilidades).
Você pode verificar as opções de montagem de um diretório pesquisando primeiro o ponto de montagem que o contém com df
:
df /tmp/somefile
Em seguida, procure o ponto de montagem na saída de mount
ou no Linux em /proc/mounts
.
mount | awk '$3 == "/tmp"'