У меня есть двоичный файл с разрешениями ниже.
-rwsr-xr-x. 1 root root
поэтому, когда какой-либо пользователь X пытается выполнить двоичный файл, он запускается от имени root. Более того, пользователь может уничтожить этот процесс (запущенный от имени пользователя root) из своего идентификатора, используя
kill -9
Любой способ предотвратить возможность уничтожения этого процесса пользователем.
1 ответ
Пользователь может убить процесс, потому что процесс запускается с Effective UID
root
но с Real UID
самого себя. Другие пользователи не смогут убить этот процесс.
Вы можете попробовать установить бит SETUID и SETGID для id
:
# chmod u+s,g+s $(which id)
а затем сравните вывод:
id
а также
sudo id
и вы увидите разницу.
Также вы можете попытаться завершить процесс с установленными битами SETUID и SETGID, который запускается текущим пользователем с помощью sudo -u SOMEOTHERUSER
. Вы увидите, что его нельзя убить.
Я предполагаю, что смысл битов SETUID и SETGID состоит не в том, чтобы предоставить root-права владение процессом, а просто в том, чтобы повысить привилегии, но оставить процесс, принадлежащий исполняющему пользователю. И я сомневаюсь, что вы можете изменить это независимо от того, нравится вам это или нет (кроме как взломать ядро или около того?).