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.