Я использую сценарий Python для выполнения докера, но докер требует, чтобы команды sudo работали, и это - плохая практика, чтобы сохранить sudo пароль в файле или дать целый сценарий Python sudo права, я видел метод, где Вы позволяете системе выполнить определенные команды, не вводя пароль, я попробовал его, но я не могу получить голову вокруг этого, я главным образом ввел его неправильно (я думаю), я даже повредил свой sudoers файл однажды и зафиксировал его.
Таким образом, кто-либо может объяснить эту строку для меня и почему она не работает?
username ALL = (root) NOPASSWD: /usr/bin/docker
Для предотвращения повреждения /etc/sudoers
файл всегда используйте эти visudo
команда. Если Вам не нравится набор редактора по умолчанию EDITOR
переменная среды к Вашей желаемой.
Помещенный Ваш пользовательская строка спецификации как последняя строка в sudoers
файл.
Обновление :
Выполните команду:
sudo visudo
Теперь переходят к записи %sudo
%sudo ALL=(ALL:ALL) ALL
и заменяют его:
%sudo ALL=(ALL) NOPASSWD:/usr/bin/docker
это будет влиять на всех sudo пользователей. Если Вы просто хотите сделать, та опция для одного определенного пользователя "должна иметь sudo полномочия":
user ALL=(ALL) NOPASSWD:/usr/bin/docker
Теперь сохраняют и выходят.
, Чтобы быть уверенным, что все - корректное выполнение команда:
sudo docker
Это должно работать, не запрашивая пароль пользователя.
Подсказка: Быть уверенным у Вашего пользователя есть sudo полномочия и быть уверенным, что путь команды корректен. можно проверить использование which docker