如何将我的Web服务器设置为以“nobody”以外的特定用户身份运行?

这是一个运行Ubuntu的不起眼的LAMP服务器。 我想这样做的原因是因为我想要一个php脚本能够通过exec()函数运行一个linux命令,而我想运行的命令需要“nobody”没有的权限。我添加了我的新用户'网'与适当的权限,现在我只需要我的Web服务器是用户'networking'。

这是位于:

/etc/apache2/envvars 

通常(默认):

 export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data 

你可以改变这个Apache运行的用户。 您将需要重新启动Apache以进行更改。

你真正想要的是SUEXEC。 你提出的是相当快和肮脏; 这也带来了巨大的安全风险。

你应该做的是这个 。

看看suexec 。 或者,您可以将Apache运行的用户设置为。 这是我的httpd.conf的摘录

 # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User www Group www 

我知道这是迟到了,但当我试图解决类似的问题时,我偶然发现了这个问题。 我build议你运行WHOIAM来确定当前用户。 然后使用VISUDO授予用户正确的权限

默认情况下,apache与用户www-data一起运行,你可以通过在/ etc / sudoers中包含以下行来应用visudo中的权限

 www-data ALL = NOPASSWD : /usr/local/bin 

你可以用你想在脚本中运行的命令replace/ usr / local / bin