我正在运行 FreeBSD 7 和 apache-2.2.13。
我正在尝试调试一个 cgi 脚本http://www.example.org/cgi-bin/printenv. 该脚本是一个用Bourne shell编写的简单脚本。
我想以用户“www”的身份从 unix 命令行运行此脚本。但是,用户“www”没有 shell(设计如此)。这意味着我无法“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”身份运行该脚本?
答案1
你的第一个例子很好 - 这个错误可能意味着 shell 当前指向nologin
。只需将其更改为有效的 shell 或使用类似 的方法,sudo
这有点像 hack 但可以工作。
[root@monkey]# grep monkey /etc/passwd monkeyman:x:100:101:monkeyman:/home/monkeyman:/sbin/nologin [root@monkey]# sudo -u monkeyman echo "hi" 你好 [root@monkey]# su monkeyman -c 'echo hi' 此帐户目前不可用。
答案2
您是否尝试过在 FreeBSD 下以不同用户身份运行?