Поиск лучшего решения выполнить единственную команду sudo при использовании учетной записи обычного пользователя?

Я зарегистрирован с учетной записью обычного пользователя, которая не является членом групп sudo и администратором. Когда я выполняю следующую команду в качестве примера..

su -c 'sudo some_command_that_needs_sudo' sudo-user

.. необходимо ввести пароль дважды. В первый раз, который войдет в систему как sudo-пользователь и во второй раз, потому что мы запрашиваем полномочия пользователя root с помощью sudo.

Вы знаете, как предотвратить ввод пароля во второй раз?

Следует иметь в виду..

  • .. не хочу изменять любые полномочия пользователя
  • .. хочу ввести пароль только однажды
  • .. поиск простой единственной команды
3
задан 24 March 2013 в 04:48

1 ответ

Ваша конфигурация немного ненормальная. Обычно вы добавляете свое имя пользователя в sudoers и ограничиваете приложения, которые могут быть выполнены таким образом, если это необходимо. Не зная подробностей, я не вижу никакой выгоды от введения третьего аккаунта. Это просто вводит больше косвенности, с которой вы сейчас сталкиваетесь.

Первый пароль, который вы вводите, должен стать пользователем sudo. Этого нельзя избежать - вы меняете пользователей. Вот некоторые сумасшедшие обходные пути, которые вам приходят на ум, которые вы не должны использовать.

  • Вы можете установить пустой пароль для пользователя, чтобы упростить вход в систему, но это было бы безумной угрозой безопасности. Не делай этого.
  • Вы можете автоматизировать вход в систему с expect и жестко заданным паролем. Это не более безопасно, чем предыдущее предложение. Не делайте этого.
  • Вы можете использовать ssh. Вы создадите ssh-ключ как sudo-user, скопируете его в .ssh dir своего пользователя, разрешите его для своего пользователя, добавите его в .ssh / authorized_keys sudouser и затем используете: ssh -i .ssh/sudouser_id_rsa sudouser@localhost <command>. Это может сработать, но это безумие.

Второй пароль можно легко удалить, отредактировав файл sudoers с помощью visudo и установив sudouser как NOPASSWD. Это более распространенная операция. Вы можете даже ограничить команды, которые не требуют пароля, что, очевидно, рекомендуется, если вы только собираетесь выполнить несколько команд таким способом. Обратите внимание, однако, что если к этому пользователю sudo не относиться очень серьезно, наличие политики NOPASSWD не является хорошей идеей. Вообще говоря, это не очень хорошая идея.

Конфигурация, которая может запускать все команды без запроса пароля, будет выглядеть так:

sudouser ALL= NOPASSWD: ALL

Итог - я не понимаю, почему вы используете эту конфигурацию трех учетных записей. С одной стороны, с точки зрения предоставления вам того, о чем вы просили, позволить пользователю sudo запускать определенные команды без запроса пароля - самый разумный путь.

Вы должны быть осторожны, хотя это создает менее безопасную настройку.

Кроме того, технически возможно достичь решения с нулевой аутентификацией в соответствии с вашими рекомендациями, используя как аутентификацию на основе ключей ssh, так и NOPASSWD для пользователя sudo, поэтому ваши команды будут выглядеть так:

[ 111]

Это явно далеко за ненадежным - это просто открыто. Мне не нужно это говорить, но не делай этого.

0
ответ дан 24 March 2013 в 04:48

Другие вопросы по тегам:

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