Я в группе sudo все в порядке:
$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)
В моих судорогах у меня, кажется, есть подходящая настройка:
sudo ALL=(ALL:ALL) NOPASSWD: ALL
и это последняя некомментированная строка там.
Но когда я пытаюсь это сделать git pull
, я снова набираю пароль:
$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:
Когда я вошел в консоль, это не проблема, но это неприемлемо в скриптах. Итак, как я могу разрешить кому-либо из группы sudo использовать git pull как www-data без повторного ввода пароля?
Когда я ставлю свое имя напрямую:
molot ALL=(ALL) NOPASSWD: ALL
меня устраивает. Но, очевидно, не для Мэриан или других пользователей из группы sudo. Насколько я понял руководство , имена пользователей и группы должны работать в первом файле.
sudo -u www-data ./your_script.sh
? Какова цель сценария?sudoers
формат файла) - это имя вызывающего пользователя. Вы пытались заменить его подстановочным знаком*
, или каким бы пользователем ни был запущен git hook?*
не работает. Помещение моего имени работает непосредственно для меня ... но не для других пользователей в группе sudo, очевидно.Ответы:
Кажется, у вас есть соответствующая строка в вашем sudoers, пропускающая символ:
соответствует пользователю с именем 'sudo'. Для «всех пользователей в группе sudo» должно быть:
(обратите внимание на знак% в начале).
источник
%
в%wheel
виду.sudo visudo
Затем, предполагая, что
molot
ваше имя пользователя, перейдите в конец файла и:molot ALL=(ALL) NOPASSWD: ALL
Это должно работать, но если это не так, держите нас в курсе.
источник
User_Alias
) и дайте разрешение на запуск определенных команд от имени пользователя root (Runas_Alias
). Я не знаю, как настроена ваша группа, вы можете посмотреть википедию Sudoers help.ubuntu.com/community/Sudoers. Это действительно лаконично. Проверьте раздел «Технические характеристики пользователя», это должно помочь.