尝试在PHP中运行rename
命令时,我收到权限被拒绝错误。
它尝试重命名的文件位于另一个用户主目录中。
这是我到目前为止所做的:
鉴于PHP用户(userA)访问该组。所以当我运行id
时
我明白了
uid=1004(userA) gid=1006(userA) groups=1006(userA),10(wheel),1007(userB)
PHP脚本以userA
运行。
我从sudo chmod -R g+rwx ./*
目录中运行/home/userB/subdomains/mp3s
。
当我导航到保存文件的目录时,在/home/userB/subdomains/mp3s/
下并运行ls -lha
我得到:
-rw-rwxr-- 1 userB userB 62M Aug 8 2017 Stress Management - Lesson 1.mp3
因此该组具有读/写/执行权限,而我的userA
可以访问该组,为什么不能重命名该文件?
答案 0 :(得分:1)
所以我打赌你有这个花哨的CentOS实例的SELinux。在权限更改之上添加以下内容以允许PHP重命名文件:
sudo chcon -t httpd_sys_rw_content_t /home/userB/subdomains/mp3s/ -R
该命令可能需要不同的PHP CLI权限,而不是针对它运行的Web服务,但您可以在CentOS SELinux上找到有关该命令的信息如何:
https://wiki.centos.org/HowTos/SELinux
第一个命令对我有所帮助,并且被发现: