unix — при запуске от имени root как заставить PHP создавать файлы с определенной группой?

У меня есть скрипт PHP, который запускается от имени пользователя root. Сценарий создает несколько файлов, и эти файлы должны принадлежать указанному пользователю и группе. Мне удалось заставить скрипт создавать файлы с правильным владельцем, однако группа, связанная с файлами, все еще root,

Вот подтверждение концепции того, что я делаю:

$userInfo = posix_getpwnam('eric');
posix_initgroups($userInfo['name'], $userInfo['gid']);
posix_setuid($userInfo['uid']);

file_put_contents('test.txt', 'Some content');

Затем я запускаю его как root:

sudo php test.php

Создает файл, связанный с корневой группой:

Access: (0644/-rw-r--r--)  Uid: ( 1000/    eric)   Gid: (    0/    root)

Как я могу заставить PHP создавать файлы с правильным Gid?

Примечание: скрипт должен быть в состоянии работать от имени пользователя root и работать с su - $user это не вариант в моем сценарии.

1

Решение

Вы могли бы использовать команда chgrp () после факта или попробуйте ту же методологию posix, но с группой: posix_setgid ().

Соответствующий порядок вызовов функций: posix_setgid () first, posix_setuid () last.

1

Другие решения

Добавление posix_setgid($userInfo['gid']); к сценарию после того, как вы установили UID, должны сделать свое дело.

1

По вопросам рекламы [email protected]