Я добавил пользователя следующим образом:
$ adduser --system --home /no/home --no-create-home --group --disabled-password --disabled-login testuser
Добавил пользователя в группу:
$ adduser testuser testgroup
добавлены строки в sudoers (visudo):
testuser ALL=(ALL) NOPASSWD: ALL
%testgroup ALL=(ALL:ALL) NOPASSWD: ALL
Когда я пытаюсь запустить скрипт bash со следующим содержимым:
#!/bin/sh
sudo -u testuser /usr/bin/php /usr/local/bin/script.php
Но когда я запускаю этот скрипт, я получаю сообщение об ошибке в журнале:
sudo: no tty present and no askpass program specified
Изменить: requiretty нет в файле sudoers.
sudoразрешения для пользователя/группы, от которых вы меняете, не являются пользователем, которого вы меняете на? Так разве эти строки не позволяют пользователюtestuserи группеtestgroupвыполнять любую команду (как и все) без пароля? Разве вам не нужно давать разрешение пользователю, запускающему скрипт, на выполнение команд какtestuserдля того, что вы хотите? Предполагая, что это то, что вы хотели разрешить? - person Etan Reisner   schedule 30.12.2014sudoв качестве тестового пользователя? Что конкретно вы запускали/пробовали? Какой пользователь запускает исходный скрипт? - person Etan Reisner   schedule 30.12.2014