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 nosuidné noexecimpostato.
Qualcuno può spiegare perché non funziona su Ubuntu 16.04 LTS?
sudo? C'è un bug o un refuso in esso, tuttavia, chmodmanca un nome di file.