问题描述
在尝试使用其他用户而不是www-data写入文件时遇到问题。 我需要将该文件保留在一个不是我的映射单元上,因此我无法更改该单元的权限。 Insetead我有一个用户名和一个用户组,我们称它们为“ myself”:“ myself”
我正在使用Symfony 5 Filesystem来移动文件,但是我仍然使用PHP的fopen来创建这些文件。这就是我到目前为止所拥有的。
private function moveAndDeleteFile($url_origin,$url_destiny)
{
$filesystem = new Filesystem();
$a = fopen($url_origin,'wa+');
fwrite($a,'Test');
fclose($a);
$filesystem->copy($url_origin,$url_destino,true);
if (!$filesystem->exists($url_destiny)) {
return false;
}
$filesystem->remove($url_origin);
return true;
}
这只是一个测试,所以我正在创建一个文件(名称包含在$ url_origin中),然后尝试将文件复制到$ url_destiny,然后删除原始文件(同样,只是一个测试)。
问题是该文件始终由www-data创建,对于我的目标目录,我需要将文件所有者设置为“我自己”。
有什么办法可以使用sudo更改文件所有者吗?
$filesystem->chown($url_origin,'myself',false);
这将返回错误->无法整理文件“ my / route / file.xml”
尝试时会发生相同的事情
$filesystem->chgrp($url_origin,false);
chown($url_origin,'myself');
我想我需要在某处指定用户的属性,但是我现在一无所知。关于如何实现这一目标的任何想法?我确定我缺少明显的东西。
谢谢。
解决方法
您不能使用“ chown”,因为只有“ root”可以使用“ chown”。
方法是通过以我自己的用户身份运行的php-fpm在服务器中设置“ chmod”或更改配置。
致谢