$ 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 , но он не отвечает на вопросы выше.