Я нахожусь на Linux, очевидно.Похоже, что PHP-скрипты работают от имени пользователя «www-data».Я также вижу, что загруженные файлы попадают в каталог по умолчанию / tmp, каждый с именем, начинающимся с «php».Все стандартно, наверное.Права доступа ко всем этим файлам: -rw ------- т.е. 600, пользователь 'www-data', группа 'www-data'.Проблема в том, что у меня есть сервер базы данных PostgresQL, работающий под пользователем 'postgres', который должен иметь возможность читать эти файлы, потому что он вставляет их содержимое в базу данных.В настоящее время это не может, очевидно.Конечно, как правило, запросы и функции базы данных работают под любым пользователем, подключающимся к базе данных (я также подключаюсь как «www-данные»), но здесь мы говорим о серверных функциях, которые должны вызываться как «postgres».,Это ограничение PostgresQL, к лучшему или к худшему.
Я действительно думаю о безопасности, но думаю, что мир не рухнет, если я позволю postgres читать эти файлы или ослаблять разрешения этих файлов.
Как управлять разрешениями, с которыми создаются эти файлы?Очевидно, PHP создает их сам, например, при загрузке POST-файла, но я не могу найти какие-либо параметры конфигурации.Кроме того, мой / tmp имеет права доступа «drwxrwxrwt» (777) и принадлежит пользователю «root», группа «root».
Я пытался изменить каталог загрузки с помощью «php_value upload_tmp_dir», но он не имел никакого эффектакажется - PHP все еще хранит временные файлы в /tmp.
Я НЕ хочу использовать с 'move_uploaded_file' или 'chmod', так как они пишут в файловую систему, и я хочу избежать этогокроме записи базы данных сервера базы данных.