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 nosuidni noexecdé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 chmodmanque un nom de fichier.