Suppongo che un file eseguibile con il set di bit SetUID dovrebbe essere in esecuzione come proprietario ma non riesco davvero a riprodurlo. Ho provato quanto segue.
$ cat prepar.sh cp / bin / bash. chown root.root bash chmod 4770 bash # Verificato $ sudo sh prepar.sh $ ./bash $ id -u 1000 $ uscita $
$ cat test.c #include <stdio.h> #include <unistd.h> int main () { printf ("% d,% d \ n", getuid (), geteuid ()); ritorna 0; } $ gcc -o test test.c $ chmod 4770 test # Verificato $ sudo chown test root.root $ ./test 1000,1000 $ # Perché ???
però
$ su # ./bash # id -u 0 # ./test 0,0 # Uscita # Uscita $
Nota: il punto di montaggio non ha nosuid
né noexec
impostato.
Qualcuno può spiegare perché non funziona su Ubuntu 16.04 LTS?
sudo
? C'è un bug o un refuso in esso, tuttavia, chmod
manca un nome di file.