PHP mkdir и апачское владение

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

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

6
задан Phill Pafford 1 April 2010 в 14:58
поделиться

4 ответа

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

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

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

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

2
ответ дан 17 December 2019 в 04:44
поделиться

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

0
ответ дан 17 December 2019 в 04:44
поделиться

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

1
ответ дан 17 December 2019 в 04:44
поделиться

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

[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 , а владельцем является группа «пользователи», в которой я ( прогман ) утра. Нет, если другой пользователь добавляет файл, группа автоматически попадает в эту группу

[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, но группа настроена на пользователей , и таким образом я могу удалить его

[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 .

2
ответ дан 17 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: