Php 将apache添加到用户组文件上载权限

Php 将apache添加到用户组文件上载权限,php,apache,Php,Apache,我有一个php脚本将文件上传到某个文件夹,目前它们正在作为“psacln”组上传,以便我可以通过FTP删除文件。当PHP作为FastCGI运行时,这一切都很好,为了让PHP扩展正常工作,我不得不将PHP更改为作为Apache模块运行。但现在我无法通过PHP脚本删除文件,因为权限被拒绝。我假设是因为现在组“Apache”正试图删除属于“psacln”的文件。如何允许apache删除这些文件 编辑:ls-alF drwxr-xr-x 2 fugitiveink psacln 4096 Nov 1

我有一个php脚本将文件上传到某个文件夹,目前它们正在作为“psacln”组上传,以便我可以通过FTP删除文件。当PHP作为FastCGI运行时,这一切都很好,为了让PHP扩展正常工作,我不得不将PHP更改为作为Apache模块运行。但现在我无法通过PHP脚本删除文件,因为权限被拒绝。我假设是因为现在组“Apache”正试图删除属于“psacln”的文件。如何允许apache删除这些文件

编辑:ls-alF

drwxr-xr-x   2 fugitiveink psacln 4096 Nov 13 14:05 92/
drwxr-xr-x   2 fugitiveink psacln 4096 Nov 13 06:57 93/
drwxr-xr-x   2 fugitiveink psacln 4096 Nov 13 14:12 95/
drwxr-xr-x   2 fugitiveink psacln 4096 Dec 21 18:56 96/
drwxr-xr-x   2 fugitiveink psacln 4096 Dec 21 08:30 97/
drwxr-xr-x   2 fugitiveink psacln 4096 Nov 13 14:26 98/
drwxr-xr-x   2 fugitiveink psacln 4096 Nov 13 14:28 99/

将上载目录上的权限设置为777(所有用户的wrx)。你还能上传新文件吗?如果可以,您应该能够删除文件。

我假设您具有此系统的shell和root访问权限。如果是这样,您可以尝试将apache用户(通常是
apache
www-data
)添加到
/etc/group
文件中

正确的方法是使用
usermod
,尽管我通常只是直接编辑文件

简而言之,如果您的apache用户是
apache
,请尝试:

sudo usermod apache --append --groups psacln
这基本上允许apache用户访问psacln组拥有的任何文件和目录

如果这不起作用,请发布一个具有文件权限的目录示例(
ls-alF
),我们可以从中着手

编辑:

要使用nano直接编辑组文件(使用您熟悉的编辑器替代):

找到
psacln
组并添加
apache
用户:

psacln:x:130:apache

请注意,gid(
130
)无疑会有所不同。

至少您必须授予根/sudo的“Apache”组权限您必须拥有父文件夹才能拥有Apache用户组,并且必须是可执行的。不起作用,php运行时使用的是
apache:apache
get
usermod:user-psacln不存在
运行
sudo-groups-psacln
时会得到什么?您还可以在目录列表编辑中包含
目录。'id:psacln:No-this user'您使用的是什么风格的linux?linux 2.6.18-028stab092.1/psa v10.3.1\u build1013110726.09 os\u CentOS 5您需要设置递归权限。父文件夹也应有权限。如果您不与其他用户共享服务器,则777将是安全权限。由于您有子目录,它们也必须具有777权限<代码>chmod-R a+w。从显示的目录中。如果它不起作用,您可以随时将其更改回。如果将apache添加到psacln组,则需要设置组写入权限,
chmod-rg+w.
psacln:x:130:apache