У меня есть следующий «корневой файл» со следующим содержимым:
$ cat root-file
#!/bin/bash
echo $EUID
id
Ниже приведены разрешения для этого файла:
$ ls -l root-file
-rwsr-sr-x 1 root root 15 Nov 18 02:20 root-file
Поскольку для этого файла установлен бит set-user-id, я ожидаю, что при выполнении этого файла эффективный uid будет отображаться как 0, даже если его выполняет пользователь без полномочий root (поскольку бит set-user-id вызывает процесс, который будет выполняться с эффективным идентификатором пользователя владельца файла, которым в данном случае является root). Однако вместо этого я получаю следующий вывод при выполнении «корневого файла» из оболочки без полномочий root.
$ ./root-file
1000
uid=1000(chanakya) gid=1000(chanakya) groups=1000(chanakya),4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare)
Этот файл/или сценарий не выполняется с эффективным идентификатором пользователя 0. Почему это так?