Запустить cgi-скрипт в командной строке от имени пользователя www?
Я использую FreeBSD 7 и apache-2.2.13.
Я пытаюсь отладить скрипт cgi по адресу http://www.example.org/cgi-bin/printenv. Этот скрипт представляет собой простой скрипт, написанный в оболочке Bourne.
Я хотел бы запустить этот скрипт из командной строки Unix, как пользователь 'www'. Однако у пользователя www нет оболочки (по замыслу). Это означает, что я не могу 'su' пользователю 'www' выполнить этот скрипт:
# su www -c /usr/local/www/apache22/cgi-bin/printenv
This account is currently not available.
# su - www -c /usr/local/www/apache22/cgi-bin/printenv
su: no directory
Как я могу запустить этот скрипт как пользователь 'www'?
2 ответа
Ваш первый пример в порядке - эта ошибка, вероятно, означает, что оболочка в данный момент указывает на nologin
, Просто измените его на действительную оболочку или используйте что-то вроде sudo
что-то вроде взлома, но будет работать.
[root @ monkey] # grep monkey / etc / passwd Monkeyman: х:100:101: Monkeyman: / Главная / Monkeyman: / SBIN / NOLOGIN [root@monkey]# sudo -u monkeyman эхо "привет" Привет [root@monkey]# su monkeyman -c 'echo hi' Этот аккаунт в настоящее время недоступен.
Вы пробовали то, что предлагается на Запуск от имени другого пользователя под FreeBSD?