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 nosuid
ni noexec
establecido.
¿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 chmod
falta un nombre de archivo.