exp_spawnl выполняет passwd с ограниченными привилегиями

Близкие,

Мы пытаемся разработать служебную программу (ChangePassword), которая позволяет пользователям автоматически менять свой пароль, выполняя: exp_spawnl("passwd", "username")

Команде passwd требуются привилегии root для изменения пароля другого пользователя, однако нам нравится запускать нашу служебную программу с использованием setuid, чтобы пользователь, выполняющий программу, не обязательно был root, а получал привилегии root из исполняемого файла.

Итак, мы выполняем:

sudo chown root ChangePassword
sudo chmod 6755 ChangePassword

Но по какой-то причине это не работает, когда мы выполняем ChangePassword, команда passwd, порожденная exp_spawnl, не наследует привилегии root.

Любые идеи ?


person lyaffe    schedule 28.07.2014    source источник


Ответы (1)


Проблема в том, что у passwd уже есть setuid, и он обрабатывает свои собственные разрешения.

person lyaffe    schedule 04.08.2014