Скажем, у меня есть 2 пользователя - «Алиса» и «Боб», и я хочу разрешить «Алисе» запускать любую команду от имени пользователя root, но не запускать команды от имени «Боб» или любого другого пользователя, могу ли я это сделать, и если да, то как ?

рассмотрим этот пример, который позволяет Джеймсу запускать любую команду как Алису

Джеймс ВСЕ =(Алиса) ВСЕ

или этот пример, который позволяет fred запускать команду ls от имени пользователя root

fred ALL =(root) /bin /ls

Я подозреваю, что это как-то связано с изменениями в /etc /sudoers, аналогично

alice ALL=(root)  ALL ?

2 ответа2

5

Получив права root, вы можете стать любым другим пользователем.

Если вы можете ограничить Алису ограниченным набором утвержденных команд, вы можете не дать ей стать другим пользователем, но затем необходимо проверить каждую команду, которую она запускает от имени root, чтобы выяснить, есть ли у нее утечки, которые позволяют ей использовать не утвержденная программа. Но это очень сложно и может быть неосуществимо.

0

Я полагаю, что возможности Linux позволят вам запустить процесс без возможности смены пользователя, даже если пользователь root. setcap может делать то, что вам нужно, или вы можете заглянуть в SELinux. Однако, похоже, что в этой области необходимо проделать еще больше работы по развитию. Посмотрите на этот пост переполнения стека.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .