Я собираюсь написать код, который будет широко выполнять другие программы. Я не хочу, чтобы у него были привилегии root, если кто-то установил бит set-user-id (а root является владельцем). Так что я собираюсь отбросить привилегии при запуске.
Мой вопрос:
Как я могу понять из программы, работает ли она в set-user-id
Режим?
Вы можете сравнить результат getuid()
а также geteuid()
библиотечные звонки.
Если geteuid()
возвращает 0 (корень), но getuid()
возвращает не 0, вы можете сказать, что suid активен.
Других решений пока нет …