Права доступа PHP mkdir и apache

Есть ли способ установить php под Apache для создания папок с папкой, принадлежащей владельцу программы, которая создает его вместо того, чтобы быть владельцем apache?

Используя слово press, он создает новые папки для загрузки, но они принадлежат apache.apache, а не сайту, на котором они запущены. Это также происходит с использованием прошивок. На данный момент мы имеем SSH на сервере и chmod в папке, но казалось бы, что есть где-то переопределить право собственности за пределами любой программы, которая это делает.

Solutions Collecting From Web of "Права доступа PHP mkdir и apache"

Safe_mode включается на вашем сервере. Функция mkdir() создает папку с владельцем («apache», «none», ..), которая отличается от текущего владельца скрипта. И скрипты не могли загружать (перемещать, копировать) файлы в эту папку с другим владельцем (это не похоже на владельца текущего скрипта).

Отключите safe_mode и это будет работать.

Подробнее см. http://php.net/manual/en/features.safe-mode.php .

PS С помощью safe_mode вы не можете использовать функцию chmod() в php.

Другой способ – поместить пользователя apache и пользователей-клиентов в новую группу. Дополнительно каталог должен использовать SGI с липким битом, чтобы каждый новый файл получил групповое присвоение этой новой группе. Таким образом, веб-сервер и «пользователи пользователей» могут без проблем работать с файлами

 [17:57] progman@proglap /tmp/test $ ls -al /tmp/test total 9 drwxrwsr-x 2 root users 48 Apr 1 17:55 . drwxrwxrwt 36 root root 9264 Apr 1 17:53 .. 

Как вы видите, каталог получил бит SGID а владелец – группа пользователей, в которой я ( progman ). Нет, если другой пользователь добавляет файл, группа автоматически получает эту группу

 [17:55] proglap ~ # touch /tmp/test/x 

Это выполняется от root. Теперь мы получаем:

 [17:57] progman@proglap /tmp/test $ ls -la /tmp/test total 9 drwxrwsr-x 2 root users 72 Apr 1 17:59 . drwxrwxrwt 36 root root 9264 Apr 1 17:53 .. -rw-r--r-- 1 root users 0 Apr 1 17:59 x 

Как видите, добавленный файл от root, но группа настроена на users и таким образом я могу удалить его

 [18:00] progman@proglap /tmp/test $ rm x rm: remove write-protected regular empty file `x'? y [18:01] progman@proglap /tmp/test $ ls -la /tmp/test total 9 drwxrwsr-x 2 root users 48 Apr 1 18:01 . drwxrwxrwt 36 root root 9264 Apr 1 17:53 .. 

Имейте в виду, что вам все равно нужно изменить chmod если вы хотите отредактировать файл, так как rw-r--r-- – это просто доступ к группе для чтения . Но изменение chmod , возможно, даже работа с umask , лучше, чем использование root-доступа и использования chown .

Не прямо, нет. Вы не можете «отдать» владение файлом другому пользователю, если только вы не root. Вы можете исследовать с помощью директивы apache « AssignUserID », чтобы заставить этого конкретного vhost работать как конкретный пользователь / группа. При этом Apache / PHP создаст любые файлы с соответствующим правом собственности

Проверьте функцию PHP chown ()