uscr 24.10.2012 15:22
Есть проблема! — Да как же разрешить в sudoers запуск программы без пароля?
Здравствуйте. На каждой новой системе правка /etc/sudoers превращается в войну с man sudoers.Вот сейчас, например, нужно разрешить запускать /usr/bin/minicom через sudo без ввода пароля. В процессе бесконечных правок конфига, решил добиться хотя бы запуска всего вообще без пароля (потом уже можно будет и конкретную команду разрешить. Итак, вот такой конфиг:
sudo cat /etc/sudoers
#
# 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_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
#Cmnd_Alias NOPWD = /usr/bin/minicom
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
nazarovd ALL=NOPASSWD: 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.d
Ключевая строка: nazarovd ALL=NOPASSWD: ALL
Приводит вот к чему:
1 |
|
Как бороться?
Вот такая есть.
nazarovd ALL=NOPASSWD: ALL
P.S. Из-за парсера сложно читать конфиг, да.
nazarovd ALL=NOPASSWD: ALL
P.S. Из-за парсера сложно читать конфиг, да.
после = и перед nopasswd не хватает определения от имени какого пользователя можно запускать
в данном случае должно быть
nazarovd ALL = (ALL) NOPASSWD: ALL
в данном случае должно быть
nazarovd ALL = (ALL) NOPASSWD: ALL
ОЛОЛО! Это Ад. Закомментировал всё, кроме моей строки. Смог запускть всё без пароля. Добавил разрешение на запуск только Minicom. Работает. Добавил себе права на запуск всего остального с паролем. Работает. Раскоментировал все строки - всё сломалось. Закоментировал "#%sudo ALL=(ALL:ALL) ALL" - работает. Ничего не понял. Ушёл пить чай и плакать. Всем спасибо.
Проверил теорию dieformetal(местоположение строки конфигурации), вот что говорит man:
так что может он прав, хотя у себя я проверил после %admin и после %sudo - сработало на ура.
PS: Проверил ТАБЫ с ПРОБЕЛАМИ - тоже не имеет значение.
When multiple entries match for a user, they are applied in order.
Where there are multiple matches, the last match is used (which is not
necessarily the most specific match).
Where there are multiple matches, the last match is used (which is not
necessarily the most specific match).
так что может он прав, хотя у себя я проверил после %admin и после %sudo - сработало на ура.
PS: Проверил ТАБЫ с ПРОБЕЛАМИ - тоже не имеет значение.
debian sid,
$ sudo -V
Sudo версия 1.8.5p2
Sudoers policy plugin version 1.8.5p2
Sudoers file grammar version 41
Sudoers I/O plugin version 1.8.5p2
повторить не удалось ни ээто, ни то, что описано в посте. возможно что-то есть в /etc/sudoers.d/
$ sudo -V
Sudo версия 1.8.5p2
Sudoers policy plugin version 1.8.5p2
Sudoers file grammar version 41
Sudoers I/O plugin version 1.8.5p2
повторить не удалось ни ээто, ни то, что описано в посте. возможно что-то есть в /etc/sudoers.d/
Если ты хочешь поуправлять 3G модемом, то может лучше поместить пользователя в группу dialout? Или что-то другое для minicom произойдёт?
Например, на одной из моих машин есть такая строчка:
%adm frontier = NOPASSWD: POWER, APT, MOUNT
Что-то в приведённом конфиге я не вижу похожих.
P.S. Девелоперы, уберите уже этот парсер, который постоянно ломает всё.