Выполнить sudo без пароля?

Вдохновленный этим вопрос....

Я единственный, кто использует мою систему с 12.04.
Каждый раз, когда я выпускаю sudo команда; система запрашивает пароль пользователя (что по-своему хорошо).
Однако я думал; не активируя root учетная запись; как я могу выполнить команды sudo, которые не будут запрашивать пароль пользователя для аутентификации.

ПРИМЕЧАНИЕ: Я хочу выполнить команду sudo без аутентификации с помощью пароля; только тогда, когда они выполняются через терминал.
Я не хочу удалять этот дополнительный уровень безопасности из других функций, например, при использовании "Ubuntu software center" или выполнении сценария bash путем перетаскивания чего-либо.отправьте файл на терминал.

Вы можете настроить sudo чтобы никогда не запрашивать ваш пароль.

Откройте окно терминала и введите:

sudo visudo

В нижней части файла добавьте следующую строку:

$USER ALL=(ALL) NOPASSWD: ALL

Где $USER это ваше имя пользователя в вашей системе.Сохраните и закройте файл sudoers (если вы не изменили свой редактор терминала по умолчанию (вы узнаете, если изменили), нажмите Ctl + x чтобы выйти nano и он предложит вам сохранить).

Начиная с Ubuntu 19.04, файл теперь должен выглядеть примерно так

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults    env_resetDefaults    mail_badpassDefaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"# Host alias specification# User alias specification# Cmnd alias specification# User privilege specificationroot    ALL=(ALL:ALL) ALL# Members of the admin group may gain root privileges%admin ALL=(ALL) ALL# Allow members of group sudo to execute any command%sudo   ALL=(ALL:ALL) ALL# See sudoers(5) for more information on "#include" directives:#includedir /etc/sudoers.dYOUR_USERNAME_HERE ALL=(ALL) NOPASSWD: ALL

После этого вы можете ввести sudo <whatever you want> в окне терминала без запроса пароля.

Это относится только к использованию sudo команда в терминале. Вам по-прежнему будет предложено ввести пароль, если вы (например) попытаетесь установить пакет из центра программного обеспечения

gui password prompt

sudo -i это правильный путь, если вы не хотите вводить пароль каждые 10 минут во время внесения изменений в свою систему (или другие системы), и вы не хотите изменять какие-либо системные файлы.

Это переключит вас на root, используя ваш sudo пароль пользователя, когда вы закрываете консоль или вводите exit вы вернулись к своему обычному пользователю.

Предпочтительным способом предоставления индивидуальных (или групповых) разрешений было бы добавление файлов в /etc/sudoers.d

Это отделяет локальные изменения от политики по умолчанию и экономит время в случае изменения файла sudoers дистрибутива.

Чтобы сделать текущего вошедшего в систему пользователя a sudoer и сделать sudo не запрашивайте у них пароль, используйте

echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/$USER

это создаст файл с именем /etc/sudoers.d/$USER (где $USER это имя пользователя, под которым вы вошли в систему при выполнении этой команды), что дает понять, каким пользователям предоставлены разрешения.

Если вы хотите сделать это для другого пользователя, просто замените оба экземпляра $USER с каким-либо другим именем пользователя в приведенной выше команде.

echo "otheruser ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/otheruser

Аналогично, один файл можно использовать для управления несколькими директивами:

echo "username ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/local

Видеть /etc/sudoers.d/README и man sudoers для получения дополнительной информации.

Тайм-ауты Root sudo - самый простой и безопасный способ сделать это. Я приведу все примеры, но имейте в виду, что это очень рискованно, как бы вы это ни делали, хотя этот способ намного безопаснее:

sudo visudo

Это открывает редактор и указывает на файл sudoers - Ubuntu по умолчанию использует nano, другие системы используют Vi. Теперь вы суперпользователь, редактирующий один из самых важных файлов в вашей системе. Никакого стресса!

(Vi конкретные инструкции, отмеченные с (ru!). Игнорируйте их, если вы используете nano.)

Используйте клавиши со стрелками, чтобы перейти к концу Defaults линия.

(ru!) нажмите клавишу A (заглавная "a"), чтобы перейти в конец текущей строки и перейти в режим редактирования (добавить после последнего символа в строке).

Теперь введите:

,timestamp_timeout=X

где X - время истечения тайм-аута в минутах. Если вы укажете 0, у вас всегда будет запрашиваться пароль. Если вы укажете отрицательное значение, тайм-аут никогда не истечет. Напр. Defaults env_reset,timestamp_timeout=5.

(ru!) нажмите Escape, чтобы вернуться в командный режим. Теперь, если вы довольны своим редактированием, введите :w Enter чтобы записать файл и :q Enter чтобы выйти из vi. Если вы допустили ошибку, возможно, самый простой способ - повторить с самого начала, чтобы выйти без сохранения (нажмите Escape чтобы войти в командный режим), а затем введите :q! Enter.

Удар Ctrl+X, тогда Y, тогда Enter чтобы сохранить ваш файл и выйти из nano.

Возможно, вы захотите прочитать страницы руководства sudoers и vi для получения дополнительной информации.

man sudoersman vi

Сбросить значение тайм-аута с помощью:

sudo -k

Эти инструкции предназначены для удаления запроса пароля при использовании команды sudo. Однако для корневого доступа все равно потребуется использовать команду sudo.

Отредактируйте файл sudoers

Откройте окно терминала. Введите sudo visudo. Добавьте следующую строку в КОНЕЦ файла (если ее нет в конце, она может быть аннулирована последующими записями):

<username> ALL=NOPASSWD: ALL

Заменять <username> с вашим именем пользователя (без <>). Это предполагает, что Ubuntu создала группу с тем же именем, что и ваше имя пользователя, что является типичным. Вы можете поочередно использовать группу "Пользователи" или любую другую подобную группу, в которой вы находитесь. Просто убедитесь, что вы находитесь в этой группе. Это можно проверить, перейдя в раздел Система -> Администрирование -> Пользователи и группы.

Пример:

michael ALL=NOPASSWD: ALL

Введите ^X (Ctrl+X), чтобы выйти. Это должно вызвать запрос на сохранение файла, введите Y для сохранения.

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

Учетная запись root

Включение учетной записи root

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

sudo -i

Однако, если вы должен включите корневой вход в систему, вы можете сделать это следующим образом:

sudo passwd root

Повторное отключение вашей учетной записи root

Если по какой-либо причине вы включили свою учетную запись root и хотите отключить ее снова, используйте следующую команду в терминале:

sudo passwd -dl root

Общесистемный групповой sudo

root$ echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Выйдите из системы, а затем снова войдите в систему.

Сбросить тайм-аут sudo

Вы можете убедиться, что sudo запрашивает пароль в следующий раз, запустив:

sudo -k

Конечно, то, что вы хотите сделать, не рекомендуется. Через некоторое время, хотя и входя sudo становится настолько автоматическим, что его полезность уменьшается.

Другой подход заключается в том, чтобы оставить ваш файл sudoers как есть и, выполняя что-то сложное с вашими пятнадцатью сотнями серверов, ввести sudo bash . Это даст вам оболочку, которая будет аутентифицироваться как root до тех пор, пока вы не выйдете из нее.

Хорошая однострочная строка для удаления подсказок sudo для текущего пользователя

sudo bash -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)'

Это однострочное решение, которое также изменяет права доступа к файлам, как указано в /etc/sudoers.d/README:

sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)' && sudo chmod 440 /etc/sudoers.d/$(logname)

Один лайнер

sudo sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g'

От Суперпользователь приходит хороший ответ:

Используйте переключатель -S, который считывает пароль из STDIN:

echo <password> | sudo -S <command>

Заменять <password> с вашим паролем.

  • Развивая идею @upteryx.

  • Вот как я реализовал некорневого пользователя без пароля в эфемерном образе Docker для использования в конвейере CICD:

RUN \    groupadd -g 999 foo && useradd -u 999 -g foo -G sudo -m -s /bin/bash foo && \    sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' && \    sed -i /etc/sudoers -re 's/^root.*/root ALL=(ALL:ALL) NOPASSWD: ALL/g' && \    sed -i /etc/sudoers -re 's/^#includedir.*/## **Removed the include directive** ##"/g' && \    echo "foo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \    echo "Customized the sudoers file for passwordless access to the foo user!" && \    echo "foo user:";  su - foo -c id

Конечно, вы можете продлить тайм-аут. Кроме того, если вы часто выполняете новые настройки сервера, вам следует подумать об автоматизации этого процесса. Вам платят не за то, чтобы вы печатали, вам платят за то, чтобы решать проблемы и делать дерьмо.

итак, вы хотите, чтобы у вас запрашивали пароль только в терминале, а для других вещей - нет, или наоборот?! в обоих случаях я думаю, что это нарушение строгой безопасности

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

Это требование носит временный характер и должно использоваться при настройке и установке новых серверов… во время установки нового сервера на настройку с помощью команд sudo действительно уходят часы … выдача пароля каждые 15 минут. это головная боль. Я не хочу использовать учетную запись root.

По теме: Как запустить команду sudo без пароля?

Вам нужно прочитать обсуждение в: http://askubuntu.com/questions/135428/what-are-the-benefits-of-sudo-over-su