Вызов скрипта из программы на C с root-доступом с setuid - скрипт не запускается от имени root
Также следует отметить, что c ограничение здесь исходит c от bash, а не от самой системы c * nix. На самом деле Bash setuid проверяет сценарии SUID, чтобы c выполнять их только с корнем setuid EUID. Если вы возьмете старые scripting снаряды, вы часто получите scripting то, что хотели, из коробки. Например, sh scripting не выполняет таких проверок:
$ cat wrapper.c
int main(void)
{
system("/bin/sh -c whoami");
}
$ ls -l wrapper
-rwsr-sr-x 1 root users 8887 Feb 17 14:15 wrapper
$ ./wrapper
root
С setuid помощью bash:
$ cat wrapper.c
int main(void)
{
system("/bin/bash -c whoami");
}
$ ls -l wrapper
-rwsr-sr-x 1 root users 8887 Feb 17 14:18 wrapper
$ ./wrapper
skinp
Тем не менее, ответ c Тома - это обычно способ setuid создания оболочки для корневых setuid программ SUID
c
scripting
setuid
Вызов скрипта из программы на C с root-доступом с setuid - скрипт не запускается от имени root
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.