这是一个运行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 。