не разрешать пользователю убивать программу, запущенную другим пользователем с помощью бита setuid

354
varun

У меня есть двоичный файл с разрешениями ниже. -rwsr-xr-x. 1 root root поэтому, когда какой-то пользователь X пытается выполнить двоичный файл, он запускается от имени пользователя root. Более того, пользователь может убить этот процесс (запущенный от имени пользователя root) из своего идентификатора, используя kill -9 любой способ, чтобы предотвратить возможность пользователя убить процесс.

0

1 ответ на вопрос

0
Tom Yan

Пользователь может убить процесс происходит потому, что процесс начинается с 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-права владение процессом, а просто в том, чтобы повысить привилегии, но оставить процесс, принадлежащий исполняющему пользователю. И я сомневаюсь, что вы можете изменить это независимо от того, нравится вам это или нет (кроме как взломать ядро ​​или около того?).

Похожие вопросы