не могу создать каталог с помощью mkdir

Поэтому я пытаюсь разработать сценарий, в котором все пользователи могут загружать изображение в динамически создаваемую папку.

Вот линия, которую я сделал.

$newID = 1
mkdir('uploads/job_images/'.$newID.'/',0755);

Это создаст папку внутри «uploads/job_images», которая уже настроена.

Моя проблема в том, что если для разрешения «образы заданий» установлено значение 755 или 766, это не позволит мне создать каталог. Но когда я пытаюсь установить разрешение «job_images» на 777, это позволяет мне создать каталог. Но говорят, что 777 — это угроза безопасности. Как вы думаете, почему я не могу создать папку внутри «job_images», если для разрешения установлено значение 755, но позволяет мне создать папку внутри «job_images», если для разрешения «job_images» установлено значение 777?

Созданная папка также имеет «владелец/группа», установленную на 99/99 (никто). С этой группой владельцев все в порядке?

Вопросы:

  1. Могу ли я сделать это, не используя 777 для папки «job_images», или оставить 777, это нормально?
  2. Нужно ли менять владельца созданной папки? Возможно, когда-нибудь мне понадобится удалить эти папки.
  3. Как сделать группу созданных папок пользователями сайта по умолчанию?

person Keith Varias    schedule 07.01.2013    source источник
comment
Под каким пользователем/группой работает ваш веб-сервер? Если не 99/99, попробуйте установить право собственности на папку для пользователя/группы вашего веб-сервера.   -  person PassKit    schedule 07.01.2013
comment
не знаю больше. но нужно ли разрешение?   -  person Shreyash Mahajan    schedule 07.01.2013


Ответы (2)


Попробуйте использовать sudochown, чтобы изменить владельца вашего каталога на Apache. (или любое другое программное обеспечение/служба/демон, выполняющее ваш код :). Если вы являетесь создателем каталога, вам не нужно использовать sudo (но в большинстве систем Unix/Linux вам также потребуются разрешения целевой группы).

Ознакомьтесь с числовым обозначением разрешений файловой системы. Первые 7 означают, что группа владельцев имеет права на чтение, запись и выполнение вашего файла. 5 означает чтение и выполнение без записи, поэтому вы не можете создать новый каталог.

person Infinity    schedule 07.01.2013
comment
Здравствуйте, у меня нет доступа к root. У меня есть только учетная запись реселлера от хостинг-провайдера. Время от времени новые папки создаются разными пользователями. Значит ли это, что мне нужно время от времени менять владельца группы этих вновь созданных папок? - person Keith Varias; 07.01.2013
comment
Привет, если вы являетесь владельцем файла - вы все равно можете использовать команду chown для смены владельца. В большинстве систем Unix/Linux вам также необходимо иметь разрешения целевого пользователя/группы. - person Infinity; 07.01.2013
comment
5 означает чтение и выполнение без записи, поэтому вы не можете создать новый каталог. Значит, нет другого способа создать новый каталог внутри папки, если для этой папки установлено значение 755? Мне жаль, что я новичок в этом. - person Keith Varias; 07.01.2013
comment
Первое число относится к владельцу, второе — к группе владельцев, а третье — ко всем. Таким образом, только владелец файла может создавать новые папки (что запрашивает права на запись) :) - person Infinity; 07.01.2013

У меня такая же проблема, PHP ограничивает некоторые функции:

Функции, ограниченные безопасным режимом Решение устанавливается директивой safe_mode_gid=Вкл. в файле конфигурации /etc/php5/apache2/phi.ini.

См. директиву safe_mode_gid. Это работает для моего сервера LAMP Ubuntu 12.04.

person jjllm    schedule 15.03.2014