![以用户 www 的身份在命令行上运行 cgi-script?](https://linux22.com/image/543727/%E4%BB%A5%E7%94%A8%E6%88%B7%20www%20%E7%9A%84%E8%BA%AB%E4%BB%BD%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8A%E8%BF%90%E8%A1%8C%20cgi-script%EF%BC%9F.png)
我正在运行 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 下以不同用户身份运行?