Я зарегистрирован с учетной записью обычного пользователя, которая не является членом групп sudo и администратором. Когда я выполняю следующую команду в качестве примера..
su -c 'sudo some_command_that_needs_sudo' sudo-user
.. необходимо ввести пароль дважды. В первый раз, который войдет в систему как sudo-пользователь и во второй раз, потому что мы запрашиваем полномочия пользователя root с помощью sudo.
Вы знаете, как предотвратить ввод пароля во второй раз?
Следует иметь в виду..
Ваша конфигурация немного ненормальная. Обычно вы добавляете свое имя пользователя в sudoers и ограничиваете приложения, которые могут быть выполнены таким образом, если это необходимо. Не зная подробностей, я не вижу никакой выгоды от введения третьего аккаунта. Это просто вводит больше косвенности, с которой вы сейчас сталкиваетесь.
Первый пароль, который вы вводите, должен стать пользователем sudo. Этого нельзя избежать - вы меняете пользователей. Вот некоторые сумасшедшие обходные пути, которые вам приходят на ум, которые вы не должны использовать.
expect
и жестко заданным паролем. Это не более безопасно, чем предыдущее предложение. Не делайте этого. ssh -i .ssh/sudouser_id_rsa sudouser@localhost <command>
. Это может сработать, но это безумие. Второй пароль можно легко удалить, отредактировав файл sudoers с помощью visudo
и установив sudouser как NOPASSWD. Это более распространенная операция. Вы можете даже ограничить команды, которые не требуют пароля, что, очевидно, рекомендуется, если вы только собираетесь выполнить несколько команд таким способом. Обратите внимание, однако, что если к этому пользователю sudo не относиться очень серьезно, наличие политики NOPASSWD не является хорошей идеей. Вообще говоря, это не очень хорошая идея.
Конфигурация, которая может запускать все команды без запроса пароля, будет выглядеть так:
sudouser ALL= NOPASSWD: ALL
Итог - я не понимаю, почему вы используете эту конфигурацию трех учетных записей. С одной стороны, с точки зрения предоставления вам того, о чем вы просили, позволить пользователю sudo запускать определенные команды без запроса пароля - самый разумный путь.
Вы должны быть осторожны, хотя это создает менее безопасную настройку.
Кроме того, технически возможно достичь решения с нулевой аутентификацией в соответствии с вашими рекомендациями, используя как аутентификацию на основе ключей ssh, так и NOPASSWD для пользователя sudo, поэтому ваши команды будут выглядеть так:
[ 111]Это явно далеко за ненадежным - это просто открыто. Мне не нужно это говорить, но не делай этого.