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

kee*_*eeg 8 php apache

我有一个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/
Run Code Online (Sandbox Code Playgroud)

haf*_*huk 13

我假设你有对这个系统的shell和root访问权限.如果是这样,您可以尝试将apache用户(通常apachewww-data)添加到该/etc/group文件.

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

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

sudo usermod apache --append --groups psacln
Run Code Online (Sandbox Code Playgroud)

这基本上使apache用户可以访问psacln组拥有的任何文件和目录.

如果这不起作用,请使用文件permissions(ls -alF)发布目录示例,我们可以从中进行操作.

编辑:

要使用nano直接编辑组文件(替换为您认为合适的编辑器):

sudo nano /etc/groups
Run Code Online (Sandbox Code Playgroud)

并找到该psacln组并添加apache用户:

psacln:x:130:apache
Run Code Online (Sandbox Code Playgroud)

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