exemple setuid de Wikipedia: 4700

Je lisais sur setuid sur Wikipédia . L'un des exemples se présente comme suit:

4700

SUID sur un file exécutable appartenant à "root"

Un user nommé "queues" tente d'exécuter le file. Le propriétaire du file est "root", et les droits du propriétaire sont exécutables, de sorte que le file est exécuté en tant que root.

Sans SUID, l'user "queues" n'aurait pas pu exécuter le file, car aucune permission n'est autorisée pour le groupe ou d'autres personnes sur le file. Une utilisation par défaut de ceci peut être vue avec le file binary /usr/bin/passwd .

Je ne comprends pas cela. Comment l'user peut-il «exécuter» ce file, puisqu'il n'est pas le propriétaire du file, et que les permissions de groupe et autres ne sont pas disponibles?

J'ai essayé de recréer ce scénario, et en effet:

 $ su -c 'install -m 4700 /dev/null suidtest' $ ls -l suidtest -rws------ 1 root root 0 21 dec 07:48 suidtest* $ ./suidtest bash: ./suidtest: Permission denied 

Je n'ai eu ce travail avec les permissions de 4755 . En outre, l'utilisation par défaut mentionnée dans l'exemple sur Wikipédia (le /usr/bin/passwd ) a en fait 4755 permissions.

L'exemple est-il correct et est-ce que je manque quelque chose, ou est-ce une erreur?

Vous avez raison et l'article de Wikipédia est faux. Voir ci-dessous pour un exemple:

 $ ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd $ sudo cp /usr/bin/passwd /tmp/ $ cd /tmp $ ls -l passwd -rwxr-xr-x 1 root root 30768 Dec 21 07:43 passwd $ sudo chmod 4700 passwd $ ls -l passwd -rws------ 1 root root 30768 Dec 21 07:43 passwd $ ./passwd bash: ./passwd: Permission denied $ sudo chmod 4701 passwd $ ./passwd Changing password for user vagrant. Changing password for vagrant. (current) UNIX password: $