
Можно ли настроить sudo так, чтобы он запрашивал пароль root вместо пароля пользователя?
Сервер настроен с пользователем root и простым пользователем (назовем его simple) с ограниченными привилегиями, используемыми для развертывания всех приложений, размещенных на сервере. Пользователь simple отсутствует в списке sudoers, поэтому
$ sudo command
не сработает, так как пароль Simple не может предоставить ему права root.
Иногда мне нужно запустить некоторые скрипты, которым нужен root-доступ через Capistrano (инструмент развертывания Ruby), и довольно сложно написать скрипт, чтобы войти в систему как root, запустить скрипт, а затем выйти. Я хотел бы иметь возможность выполнить следующее выражение
$ sudo god restart tasks-group
и пусть Capistrano запрашивает у меня пароль root. В настоящее время Capistrano запрашивает пароль пользователя развертывания, который, очевидно, не является учетной записью администратора.
решение1
Я думаю, вы пытаетесь заставить sudo работать не так, как задумано — вы не хотите добавлять «простого» пользователя в файл sudoers (поправьте меня, если я ошибаюсь).
В этом случае sudo — не тот инструмент, который вам нужен. Вам нужно su -c <command>
ввести команду, которая запросит пароль root, выполните ее и выйдите.
решение2
В файле sudoers нужно установить флаг, если вы хотите, чтобы пользователь аутентифицировался с помощью своего пароля или пароля root. Флаг называется rootpw
. Sudo — очень мощный пакет, обязательно проверьте страницу руководства о sudoers(5).
решение3
Нет. Используйте su
, чтобы стать пользователем root, используя пароль root.
Лучшим решением, вероятно, будет использование Capistrano sudo
на машине развертывания для задач, требующих доступа root.
решение4
Если пользователю развертывания разрешено sudo, то в этот момент он становится привилегированной учетной записью, которая может действовать в административном режиме. В этом и заключается цель sudo. Или я неправильно понял вопрос?