【问题标题】:PHP Change default User on fopenPHP在fopen上更改默认用户
【发布时间】:2020-09-01 08:51:49
【问题描述】:

我在尝试使用其他用户而不是 www-data 编写文件时遇到问题。 我需要将文件留在不是我的映射单元上,因此我无法更改该文件的权限。 Insetead 我有一个用户名和一个组,我们称他们为“我自己”:“我自己”

我正在使用 Symfony 5 文件系统来移动文件,但我仍然使用 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);

这会返回一个错误 -> 无法 chown 文件“my/route/file.xml”

尝试时会发生同样的事情

$filesystem->chgrp($url_origin, 'myself', false);

然后我尝试像这样使用默认的 PHP chown() 函数:

chown($url_origin, 'myself');

并得到另一个错误:不允许操作。

我想我需要在某处指定用户的属性,但我现在一无所知。关于如何通过这个的任何想法?我确定我遗漏了一些明显的东西。

谢谢-。

【问题讨论】:

    标签: php permissions fopen symfony5 symfony-filesystem


    【解决方案1】:

    您不能使用“chown”,因为只有“root”才能使用“chown”。

    方法是设置“chmod”或更改服务器中的配置,使用我自己的用户运行 php-fpm。

    问候

    【讨论】:

      猜你喜欢
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      相关资源
      最近更新 更多