在php中重命名文件

在php中重命名文件,php,bash,Php,Bash,尝试在PHP中运行rename命令时,我遇到一个权限被拒绝的错误 它试图重命名的文件位于另一个用户主目录中 以下是我迄今为止所做的工作: 给PHP用户一个访问该组的权限。所以当我运行id时 我明白了 uid=1004userA gid=1006userA组=1006userA,10wheel,1007userB PHP脚本以用户身份运行 我在/home/userB/subdomains/mp3s目录中运行了sudochmod-rg+rwx./* 当我导航到保存文件的目录,在/home/userB

尝试在PHP中运行rename命令时,我遇到一个权限被拒绝的错误

它试图重命名的文件位于另一个用户主目录中

以下是我迄今为止所做的工作:

给PHP用户一个访问该组的权限。所以当我运行id时 我明白了 uid=1004userA gid=1006userA组=1006userA,10wheel,1007userB

PHP脚本以用户身份运行

我在/home/userB/subdomains/mp3s目录中运行了sudochmod-rg+rwx./*

当我导航到保存文件的目录,在/home/userB/subdomains/mp3s/下运行ls-lha时,我得到: -rw rwxr-1用户B用户B 620万2017年8月8日压力管理-第1.mp3课


因此,该组具有读/写/执行权限,并且我的userA有权访问该组,那么为什么它不能重命名该文件呢?

所以我打赌你得到了带有奇特CentOS实例的SELinux。在权限更改的基础上添加以下内容,以允许PHP重命名文件:

sudo chcon -t httpd_sys_rw_content_t /home/userB/subdomains/mp3s/ -R
与针对该命令运行的web服务不同,该命令可能需要不同的PHP CLI权限,但您可以在CentOS SELinux上找到相关信息,了解如何:

第一个命令帮助了我,在以下位置找到:


你确定你在正确的目录中,并且文件的路径正确吗?这是什么操作系统?@CurtisKelseyCentOS@TomFenech是的,我需要验证文件所在的文件夹/home/userB/subdomains/mp3是否具有正确的所有权和权限。若要重命名文件,您需要对文件夹具有写入权限。