O utilitário passwd
está instalado setuid
, o que significa que, quando executado, ele é executado como o usuário que possui o arquivo , não como o usuário que o chamou. Nesse caso, passwd
pertence a root
, portanto, o setuid
bit faz com que o programa seja executado com privilégios de root. Portanto, é possível fazer alterações nos arquivos passwd
e shadow
.
Se você olhar as permissões para o utilitário passwd
, verá algo assim:
-r-sr-xr-x 2 root wheel 8.2K 19 Jan 17:24 /usr/bin/passwd
Isto é do meu sistema FreeBSD - o que você vê dependerá do SO que você está usando. O s
na posição de execução do proprietário (4ª coluna) indica o setuid
bit.
Para referência futura, o syscall é setuid
e faz parte da biblioteca C padrão.