Мені потрібен sudo без підказок пароля, для скриптів. Де я помилився?


9

Я в групі судо все в порядку:

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)

У моїх sudores, здається, у мене є відповідне налаштування:

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 отримати потяг як www-data без повторного введення пароля?

Коли я прямо ставлю своє ім'я:

molot ALL=(ALL) NOPASSWD: ALL

це працює для мене. Але, очевидно, не для маріанських або інших користувачів із групи судо. Наскільки я зрозумів керівництво , імена користувачів, і імена груп повинні працювати в першому файлі.


Ви не можете sudo -u www-data ./your_script.sh? Яке призначення сценарію?
jimbobmcgee

@jimbobmcgee - це гак-гут, тому ні, я не можу нічого до цього зробити. Його називає користувач, який підштовхнув зміни до git, і я не знайшов справжнього шляху.
Молот

Перше поле (якщо моє швидке розуміння sudoersформату файлу правильне) - це ім’я користувача, що викликає користувач. Ви спробували замінити його за допомогою шаблону *чи того, хто користувач працює як гак?
CVn

@ MichaelKjörling, як зазначено тут, слід писати як користувачів, так і груп у першому полі. *не працює. Введення мого імені безпосередньо працює для мене ... але, очевидно, не для інших користувачів групи судо.
Молот

@ MichaelKjörling дякую, ваш коментар змусив мене шукати спеціальні характеристики і дозволив мені знайти відповідь: D Редагувати: видалено самовідповідь та прийняв відповідь третьої сторони з тієї ж миті.
Молот

Відповіді:


19

Здається, у вашому відповідному рядку не вистачає символу:

sudo ALL = (ALL: ALL) NOPASSWD: ALL

відповідає користувачеві на ім'я 'sudo'. Для всіх користувачів групи судо слід:

% sudo ALL = (ALL: ALL) NOPASSWD: ALL

(зверніть увагу на знак% на початку).


1
Ну, так це малося %на %wheelувазі.
nikhil

1

sudo visudo

Потім, припустивши, що molotце ваше ім’я користувача, перейдіть до кінця файлу і:

molot ALL=(ALL) NOPASSWD: ALL

Це має працювати, але якщо цього не відбувається, повідомте нас про це.


Це працює. Для мене. Але, очевидно, не для маріана чи будь-якого іншого користувача групи судо.
Молот

Потім створіть псевдоніми користувачів ( User_Alias) і дайте дозвіл на виконання певних команд як root ( Runas_Alias). Я не знаю, як налаштована ваша група, ви можете ознайомитися з wiki help.ubuntu.com/community/Sudoers. Це дійсно стисло. Перевірте розділ «Технічні характеристики користувача», це повинно допомогти.
Югуртха Аджар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.