PHP Изменить пользователя по умолчанию на fopen

У меня возникают проблемы при попытке записать файл с другим пользователем, а не с www-данными. Мне нужно оставить файл на сопоставленном блоке, который НЕ мой, поэтому я не могу изменить разрешения для этого. Вместо этого у меня есть имя пользователя и группа, назовем их "я": "я"

Я использую файловую систему 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);

Это возвращает ошибку -> Не удалось выбрать файл "my/route/file.xml"

То же самое происходит при попытке

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

Затем я попытался использовать функцию PHP chown() по умолчанию, например:

chown($url_origin, 'myself');

И получите эту другую ошибку: операция не разрешена.

Я предполагаю, что мне нужно где-то указать свойства пользователя, но сейчас я не знаю. Есть идеи, как это пройти? Я уверен, что упускаю что-то очевидное.

Благодарность-.

1 ответ

Решение

Вы не можете использовать chown, потому что только root может использовать chown.

Способ состоит в том, чтобы установить "chmod" или изменить конфигурацию на вашем сервере с помощью php-fpm, запущенного с моим пользователем.

С уважением

Другие вопросы по тегам