Назад | Перейти на главную страницу

Как настроить sudo без пароля в Linux?

Как можно без пароля sudo доступ может быть настроен на RHEL (Fedora, CentOS и т. д.) или в дистрибутивах Ubuntu? (Если то же самое в разных дистрибутивах, это даже лучше!)

Настройка: личное и / или лабораторное / учебное оборудование без опасений по поводу несанкционированного доступа (т. Е. Устройства находятся в непубличных сетях, и все / все пользователи полностью доверены, а содержимое устройств является «обычным») .

РЕДАКТИРОВАТЬ благодаря комментарию Медины: Согласно странице руководства, вы должны иметь возможность писать

ALL            ALL = (ALL) NOPASSWD: ALL

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


Для справки оставляю свой предыдущий ответ:

Если вы добавите строку формы

%wheel         ALL = (ALL) NOPASSWD: ALL

к /etc/sudoers (используя visudo команда, конечно), это позволит всем в группе wheel запускать любые команды без ввода пароля. Поэтому я думаю, что лучшим решением будет объединить всех ваших пользователей в какую-то группу и поместить такую ​​строку в sudoers - очевидно, вам следует заменить wheel с фактической группой, которую вы используете.

В качестве альтернативы вы можете определить псевдоним пользователя,

User_Alias     EVERYONE = user1, user2, user3, ...

и используйте это:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

хотя вам придется обновить /etc/sudoers каждый раз, когда вы добавляете или удаляете пользователя.

Я пробовал вышеуказанные решения безрезультатно. Следующее решение сработало для меня Отредактируйте файл / etc / sudoers и добавьте следующую строку

username ALL=(ALL) NOPASSWD: ALL

В ключ это добавить его после последней строки, в которой говорится

#includedir /etc/sudoers.d

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

sudo -l

Это должно дать вам следующий результат:

User gmurphy may run the following commands on this host:
    (root) NOPASSWD: ALL
    (ALL) ALL

Это показывает, что я настроен с правами root, но все еще являюсь частью группы (admin), соответствующей правилу sudo, которое ожидает пароль («(ALL) ALL»). Это заставляло sudo подсказывать мне. Речь идет о правиле администраторов:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Как только я закомментировал это, я смог выполнить sudo без пароля. Надеюсь, это кому-то пригодится.

В пределах /etc/sudoers в конце файла есть пример этого:

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

Есть еще один способ сделать это, не касаясь файла sudoers.

  • редактировать /etc/pam.d/su и раскомментируйте строку ниже:

    auth           sufficient      pam_wheel.so trust use_uid
    
  • Добавить пользователя в wheel группа.

Есть еще один способ сделать это, не касаясь файла sudoers.

  • редактировать /etc/pam.d/sudo и добавьте строку ниже:

    auth           sufficient      pam_wheel.so trust use_uid
  • Добавить пользователя в wheel группа.

Реквизит «topdog» и «Daniel Serodio» за оригинальный ответ относительно «su», а не «sudo». Я использовал это как ссылку и беззастенчиво скопировал и исправил их сообщение.

Это старая ветка, но интересно, что никто не добавил системную по умолчанию authenticate к этому списку ответов. Используя запись

Defaults  !authenticate

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

Defaults:<user_name>  !authenticate 
echo -e "\n$USER ALL=(ALL) NOPASSWD: ALL\n" | sudo tee -a /etc/sudoers
sudo cat /etc/sudoers

повторно откройте терминал, убедитесь, что вас не спрашивают пароль:

sudo echo "it works!"