Supongo que un archivo ejecutable con el conjunto de bits SetUID debería ejecutarse como su propietario, pero realmente no puedo reproducirlo. Intenté lo siguiente.
$ cat prepare.sh cp / bin / bash. chown root.root bash chmod 4770 bash # verificado $ sudo sh prepare.sh $ ./bash $ id -u 1000 $ salida PS
$ cat test.c
#include <stdio.h>
#include <unistd.h>
int main () {
printf ("% d,% d \ n", getuid (), geteuid ());
devuelve 0;
}
$ gcc -o test test.c
$ chmod 4770 test # verificado
$ sudo chown root.root test
$ ./test
1000,1000
$ # ¿Por qué?
sin embargo
$ su # ./bash # id -u 0 0 # ./prueba 0,0 # salida # salida PS
Nota: El punto de montaje no tiene nosuidni noexecestablecido.
¿Alguien puede explicar por qué no funciona en Ubuntu 16.04 LTS?
sudo? Sin embargo, hay un error o un error tipográfico en el que chmodfalta un nombre de archivo.