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

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

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

su -c 'sudo some_command_that_needs_sudo' sudo-user

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

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

Пожалуйста помни..

  • ..не хочу менять привилегии пользователя
  • ..хотите ввести пароль только один раз
  • ..ищу простую одиночную команду

решение1

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

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

  • Вы можете установить пустой пароль для пользователя, чтобы упростить вход в систему, но это будетбезумныйРиск безопасности. Не делайте этого.
  • Вы можете автоматизировать вход с помощью expectжестко закодированного пароля. Это не более безопасно, чем предыдущее предложение. Не делайте этого.
  • Вы можете использовать ssh. Вы создадите ключ ssh как sudo-user, скопируете его в каталог .ssh вашего пользователя, предоставите ему права, добавите его в .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, поэтому ваши команды будут выглядеть следующим образом:

ssh -i .ssh/sudouser_id_rsa sudouser@localhost sudo whatever_i_like

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

Связанный контент