如何将PHP用户/组从Root | Root更改为Nobody | Nogroup?

时间:2016-08-22 15:00:02

标签: php apache ubuntu virtualbox

我们有一台运行Ubuntu 15 LTS(虚拟主机系统)的本地服务器。 我们使用VirtualBox作为VM软件。 我们在Virtualbox中有许多虚拟服务器(Virtual-Guest-System)。 所有这些VM-Server都是Ubuntu-Server 16 LTS(使用PHP(5.3,5.6,7),Apache等)。

对于我们使用的不同Php版本: https://launchpad.net/~ondrej/+archive/ubuntu/php/ 每个服务器只运行一个Php版本。

由apache mod = a2enmod php5.6

执行的Php

在虚拟主机系统上,我们有一个共享文件夹(/media/daten/server)和所有Web服务器文件夹(用于不同的VM-Guest-Servers)。 每个VM-Guest-Server都有此文件夹,包括(/media/sf_server) - >使用VM-Guest-Additions

我们的员工使用Windows(7和10)。所有雇员,包括Serverfolder作为Networkfolder。如果Employment将文件复制并粘贴到Server-Directory,则所有文件都会自动USER: nobody | Group: nogroup

这就是我们将Apache配置为USER: nobody | Group: nogroup的原因。 (/etc/apache2/envvars)。这很好。 Apache可以运行/写入/删除所有文件,没有任何问题。

但是当我们使用phpscript进行上传/升级(上传,wordpress,typo3)时,这些上传的文件会获得User: Root | Group: User

echo exec('whoami'); = nobody | echo get_current_user(); = root

Ftp未在VM上运行。

所有脚本均从Webbrowser / Php / Apache2开始。

示例1: 默认的Wordpress Updatescript无法创建wp-config-sample.php (没有ftp的更新 - FS_METHOD:直接)

示例2: Typo3上传图片: 上传的文件无法移动! #34; fileadmin / img /"?

中的写入权限问题
  • 我们如何运行所有PHP-Tasks(上传等)USER: nobody | Group: nogroup ???
  • 或者,使此解决方案有效的最佳/安全方式是什么?

非常感谢

1 个答案:

答案 0 :(得分:0)

使用TYPO3时,您可以配置应为创建或上传的文件设置哪个组。您必须设置以下配置变量。

$GLOBALS['TYPO3_CONF_VARS']['BE']['createGroup'] = 'nogroup';

但是,这仅适用于TYPO3 api实际处理的上传。看看

\TYPO3\CMS\Core\Utility\GeneralUtility::upload_copy_move()

了解TYPO3如何处理文件上传。