Назад | Перейти на главную страницу

Запустить cgi-script в командной строке от имени пользователя 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?

Вы пробовали то, что предлагается на Запуск от имени другого пользователя во FreeBSD?

Ваш первый пример в порядке - эта ошибка, вероятно, означает, что оболочка в настоящее время указывает на nologin. Просто измените его на допустимую оболочку или используйте что-то вроде sudo это своего рода взлом, но он сработает.

[root@monkey]# grep monkey /etc/passwd
monkeyman:x:100:101:monkeyman:/home/monkeyman:/sbin/nologin

[root@monkey]# sudo -u monkeyman echo "hi"
hi
[root@monkey]# su monkeyman -c 'echo hi'
This account is currently not available.