我有一个php脚本将文件上传到某个文件夹,目前他们正在上传为“psacln”组,以便我可以通过FTP删除这些文件。当PHP作为FastCGI运行时,这一切都运行良好,我不得不将PHP更改为以Apache模块运行,以便使php扩展工作。但现在我无法通过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/
答案 0 :(得分:13)
我假设你有对这个系统的shell和root访问权限。如果是这样,您可以尝试将apache用户(通常为apache
或www-data
)添加到/etc/group
文件中。
执行此操作的正确方法是使用usermod
,但我通常只是直接编辑文件。
简而言之,如果您的apache用户是apache
,请尝试:
sudo usermod apache --append --groups psacln
这基本上使apache用户可以访问任何文件& psacln组拥有的目录。
如果这不起作用,请使用文件权限(ls -alF
)发布您的目录示例,我们可以从中开始工作。
编辑:
使用nano直接编辑组文件(替换为您认为合适的编辑器):
sudo nano /etc/groups
找到psacln
组并添加apache
用户:
psacln:x:130:apache
请注意,gid(130
)无疑会有所不同。
答案 1 :(得分:-4)
将上传目录的权限设置为777(所有用户的wrx)。你还可以上传新文件吗?如果可以,您应该能够删除文件。