Saya kira file yang dapat dieksekusi dengan set bit SetUID harus berjalan sebagai pemiliknya tetapi saya tidak dapat mereproduksinya. Saya mencoba yang berikut ini.
$ cat prep.sh cp / bin / bash. chown root.root bash chmod 4770 bash # Terverifikasi $ sudo sh prep.sh $ ./bash $ id -u 1000 $ keluar $
$ cat test.c
#termasuk <stdio.h>
#termasuk <unistd.h>
int main () {
printf ("% d,% d \ n", getuid (), geteuid ());
return 0;
}
$ gcc -o test test.c
$ chmod 4770 test # Terverifikasi
$ sudo chown root.root test
$ ./test
1000.1000
$ # Kenapa ???
Namun
$ su # ./bash # id -u 0 # ./uji 0,0 # keluar # keluar $
Catatan: Titik pemasangan tidak memiliki nosuidatau noexecmengatur.
Adakah yang bisa menjelaskan mengapa itu gagal bekerja di Ubuntu 16.04 LTS?
sudo? Ada bug atau salah ketik di dalamnya, meskipun, chmodtidak ada nama file.