Вопрос или проблема
Я настроил свой контейнер следующим образом в файле /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
.