NOPASSWD Sudo на Ubuntu 24.04 не работает

Вопрос или проблема

Я настроил свой контейнер следующим образом в файле /etc/sudoers:
username ALL=(ALL) NOPASSWD: ALL

Это работало в предыдущих версиях (22.04, 20.04), но в Ubuntu 24.04 я получаю следующую ошибку:

sudo: требуется терминал для ввода пароля; используйте опцию -S для чтения из стандартного ввода или настройте помощник askpass sudo: требуется пароль

В этом случае обновление настройки %sudo в файле /etc/sudoers до NOPASSWD сработало.

sed -i -e 's/^%sudo\tALL=(ALL:ALL) ALL/%sudo\tALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers

До

sudo: требуется терминал для ввода пароля; используйте опцию -S
для чтения из стандартного ввода или настройте помощник askpass
sudo: требуется пароль

После

sudo apt install vim -y ВНИМАНИЕ: apt не имеет стабильного интерфейса командной строки. Используйте с осторожностью в скриптах. Чтение списков пакетов…

В моем случае /etc/sudoers.d содержит файл, который переопределяет разрешения. 10-installer. Удаление этого файла решило проблему, этот файл содержит единственную строку переопределения следующего вида:

%sudo ALL=(ALL:ALL) ALL

Ответ или решение

Проблема с работой параметра NOPASSWD в Ubuntu 24.04 может возникнуть из-затого, что система обрабатывает настройки файла /etc/sudoers и файлов в каталоге /etc/sudoers.d по-разному по сравнению с предыдущими версиями, такими как 22.04 или 20.04. Ниже приведены шаги по устранению данной проблемы.

1. Проверка настроек в /etc/sudoers

Убедитесь, что в файле /etc/sudoers присутствует правильная запись для вашего пользователя:

username ALL=(ALL) NOPASSWD: ALL

Если вы используете группу, проверьте, что соответствующая запись выглядит следующим образом:

%sudo ALL=(ALL) NOPASSWD: ALL

2. Проверка файлов в /etc/sudoers.d

Существует вероятность, что в каталоге /etc/sudoers.d/ есть файл, который переопределяет ваши настройки. Например, файл 10-installer может содержать строку, подобную этой:

%sudo ALL=(ALL:ALL) ALL

Эта строка может перезаписывать ваши настройки NOPASSWD. Для решения проблемы вы можете удалить или изменить этот файл.

3. Удаление или изменение файла

Если файл 10-installer не нужен, вы можете удалить его, выполнив следующую команду:

sudo rm /etc/sudoers.d/10-installer

Если файл все-таки требуется, измените строку на нужную:

sudo visudo -f /etc/sudoers.d/10-installer

И измените ее на:

%sudo ALL=(ALL) NOPASSWD: ALL

4. Проверка синтаксиса

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

sudo visudo -c

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

5. Перезагрузка

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

Заключение

В итоге, если после этих изменений проблема все еще не решена, рекомендуется проверить, нет ли дополнительных настроек или ограничений на уровне политики безопасности (например, AppArmor, SELinux и т.д.), которые могут воздействовать на работу sudo.

Оцените материал
Добавить комментарий

Капча загружается...