Запустить 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?

Другие вопросы по тегам