我正在 Apache 服务器上运行 PHP 脚本,并且需要从该脚本复制一些文件(以运行复制文件的 Bash 脚本)。我可以/tmp
毫无问题地复制到目录,但是当我想复制到/tmp/foo
时,我收到此错误:
cp: cannot create regular file '/tmp/foo/file.txt': Permission denied
即使目录的权限/tmp
和/tmp/foo
设置为相同的值。
你知道问题出在哪里吗?
答案1
/tmp
目录拥有所有用户的所有权限(读/写)。但如果你/tmp/foo
是用自己的帐户创建的,它就有专门为你设置的权限!如果您想让其他用户(或程序)可写,请使用以下命令更改其权限:
chmod 777 /tmp/foo
如果之前此目录中有任何其他文件,请-R
在上面的命令中添加标志。
更新:/tmp/foo
使用此命令将所有者从您自己的用户 更改为 apache 默认用户:
sudo chown www-data:www-data /tmp/foo -R
另请检查您的 apache2 配置以查看运行 php 脚本的用户。