Je suppose qu'un fichier exécutable avec l'ensemble de bits SetUID devrait fonctionner en tant que propriétaire, mais je ne peux pas vraiment le reproduire. J'ai essayé ce qui suit.
$ cat prepare.sh cp / bin / bash. chown root.root bash chmod 4770 bash # Vérifié $ sudo sh prepare.sh $ ./bash $ id -u 1000 $ exit $
$ cat test.c #include <stdio.h> #include <unistd.h> int main(){ printf ("% d,% d \ n", getuid (), geteuid ()); retourner 0; } $ gcc -o test test.c $ chmod 4770 test # Vérifié $ sudo chown root.root test $ ./test 1000,1000 $ # Pourquoi ???
toutefois
$ su # ./bash # id -u 0 # ./test 0,0 # sortie # sortie $
Remarque: Le point de montage n'a ni nosuid
ni noexec
défini.
Quelqu'un peut-il expliquer pourquoi il ne fonctionne pas sur Ubuntu 16.04 LTS?
sudo
? Il y a cependant un bogue ou une faute de frappe, il chmod
manque un nom de fichier.