Apache-2.2

以使用者 www 的身份在命令行上執行 cgi-script?

  • March 23, 2011

我正在執行 FreeBSD 7 和 apache-2.2.13。

我正在嘗試在http://www.example.org/cgi-bin/printenv調試 cgi 腳本。這個腳本是一個用 Bourne shell 編寫的簡單腳本。

我想以使用者“www”的身份從 unix 命令行執行此腳本。但是,使用者“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”執行此腳本?

您的第一個範例很好-該錯誤可能意味著目前指向了 shell nologin。只需將其更改為有效的 shell 或使用類似sudohack 但可以工作的東西。

[root@monkey]# grep 猴子 /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'
此帳戶目前不可用。

您是否嘗試過在 FreeBSD 下以不同使用者身份執行的建議?

引用自:https://serverfault.com/questions/250589