$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 136808 Jul 4 2017 /usr/bin/sudo
так что он sudoможет быть запущен любым пользователем, и любой пользователь, который запускается, sudoбудет иметь root в качестве эффективного идентификатора пользователя процесса, потому что установлен бит set-user-id /usr/bin/sudo.
С https://unix.stackexchange.com/a/11287/674
Наиболее заметное различие между sudo и su в том, что sudo требует пароль пользователя, а su требует пароль root.
Какой пароль пользователя
sudoзапрашивает? Это пользователь, представленный реальным идентификатором пользователя процесса?Если да, не может ли какой-либо пользователь получить привилегию суперпользователя, запустив
sudoи затем предоставив свой собственный пароль? Может ли Linux ограничить это для некоторых пользователей?Является ли это исправить , что
sudoзапрашивает пароль послеexecve()того, как начинает выполнятьсяmain()из/usr/bin/sudo?Поскольку euid процесса был изменен на root (поскольку бит set-user-id в / usr / bin / sudo установлен), какой смысл sudo запрашивать пароль позже?
Спасибо.
Я прочитал https://unix.stackexchange.com/a/80350/674 , но он не отвечает на вопросы выше.