Я использую 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.