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

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

这是运行 Ubuntu 的普通 LAMP 服务器。我之所以要这样做是因为我希望 php 脚本能够通过 exec() 函数运行 linux 命令,而我想要运行的命令需要“nobody”没有的权限。我已添加具有适当权限的新用户“web”,现在我只需要将我的 web 服务器设置为用户“web”。

答案1

其位于:

/etc/apache2/envvars

通常(默认情况下):

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

您可以在此处更改 apache 的运行用户。您需要重新启动 apache 才能使更改生效。

您真正想要的是 SUEXEC。 你所提出的建议相当草率和粗暴;它还带来了巨大的安全风险。

你真正应该做的是

答案2

看一下执行。或者,您可以设置 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

答案3

我知道这来晚了,但我在尝试解决类似问题时偶然发现了这个问题。我建议你运行我是谁确定当前用户。然后使用以下命令授予用户正确的权限维素多

默认情况下,apache 使用用户 www-data 运行,您可以在维苏多通过在以下行中添加/etc/sudoers

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

你可以更换在/usr/本地/bin使用您想要在脚本中运行的命令。

相关内容