• Linux PHP Херня прям какая-то с этим open_basedir и upload_tmp_dir
    В мануалах по секурности пишут — разместите второе вне первого, ок.
    В результате получаем — ТМП каталог не доступен для записи и все такое.
    В сети на стаковерфлоу так и пишут — мол, надо тмп папку в бейздире.
    А на сцайте ПХП опять же довольно невнятно но пишут что мол не обязательно и вообще системной /tmp (по умолчанию) будет достаточно.
    Блджад, хрен поймешь!

Replies (44)

  • @Toyoku-mono, не знаю как в линуксе и пхп, но в виндах эта проблема решалась раздачей прав на папку демону, который принимал аплоад
  • @Toyoku-mono, open_basedir вообще довольно сомнительная штука, ибо подобные ограничения можно реализовать стандартными средстами ОС, а на производительность open_basedir влияет заметно:
    bugs.php.net
  • @Toyoku-mono, Ну так ты внимательней смотри: от какого пользователя у тебя запущен веб-сервер, который запускает php-скрипт, который начинает что-то временно сохранять и кто владелец и какие права доступа на каталог, в который сохраняется
  • @complemento, В том-то и дело, что бейздир и права — две разные штуки
  • @beard, Владелец темппапки — www-data, права 770
    ЧТо до производительности — да, читал, но кажется на 5.5 этой проблемы нету.
    Да и realpath проявляет себя на нагруженном сервер
    Хотя если станет адски тормозить...
  • @vbooh, ЧТо еще жаль — у Линукса прям скажем дурацкие права.
    То есть НЕ разрешить доступ пользователю Х то я могу, но явно запретить доступ — нет.
    И все эти аппарморы — только заплатки
  • @Toyoku-mono, Я, честно говоря, не понял задачи, но для сложных случаев есть ACL.
  • @vbooh, в винде они накладываются друг на друга и конечный результат неясен пока не попробуешь записать )
  • @vbooh, ACL нестандартен, а стандартные rwx весьма малый простор для творчества дают, вот и все.
    Есть там конечно извращения но именно что извращения.
  • @Toyoku-mono, а сапорт чо говорит?
  • @complemento, Да, в винде можно с правами себе в ногу выстрелить...но это цена широты возможностей
  • @complemento, Саппорт — это лично ты :)
  • @Toyoku-mono, у меня нету сервера под рукой, я хз чо там творится
  • @complemento, Ну суть такая, что пыха согласная писать в тмп-диру только если она указана в бейздире, а так судя по мануалу быть не должно
  • @Toyoku-mono, Без конкретной прикладной задачи, которая возникла в реальной жизни, обсуждать малоэффективно. Есть стандартная система прав, есть ACL, есть sudo, есть capabilities, есть AppArmor, есть SELinux, то есть инструментов достаточно.
  • @vbooh, есть сапорт который творит незнамо чо
  • @vbooh, иными словами, есть легаси права на папки и файлы, унаследованные с 19ХХ годов и есть куча недопатчей призванных эту систему расширить и хоть как-то сделать приемлимой.
  • @Toyoku-mono, приемлемой через "е"
  • @complemento, Иных замечаний к утверждению нет?
  • @Toyoku-mono, нет
  • @Toyoku-mono, "Приемлемой" — это значит "приемлемой для всех случаев"? Для наиболее популярных задач стандартной системы прав хватает, для некоторых редких есть целый набор различных дополнительных инструментов.
  • @vbooh, Хорошо, давай сравним с клятой виндой.
    Есть некая пака, куда мы хотим одной группе пользователей дать права читать файлы, другой писать но не удалять, третьей еще что либо.
    Как ни странно, в винде это модно сделать установкой соотвествующих разрешений и зпретов, причем можно как разрешить и так и запретить отдельные действия.
    Кое что из этого можно, извратившись с битами прав сделать и в линуксах, но явно не все и сразу и для всех.
    Я не спорю, что и винде придется подумать головой, но не придется извращаться.
  • @Toyoku-mono, там же ещё наследование всякое есть
  • @complemento, В винде? есть, но наследование можно прервать для любой папки или файла в любой папке и установить совершенно индивидуальный, экзотический коктейль прав.
  • @complemento, Если уж совсем серьезно, то права для подавляющего большинства всех объектов — унаследованные в винде.
  • @Toyoku-mono, А в чём проблема? ACL в помощь, в популярных ФС поддерживается уже лет 12.
  • @vbooh, То есть признаешь, что стандартные POSIX права это нифига не реализуют?
    Велосипеды же!
  • @Toyoku-mono, а ты точно смотрела права демона, а не пользователя? в винде основной затык был в том, что путали
  • @complemento, Демон исполняется от имени www-data, он же владелец папки. так что либо одно либо из двух.
  • @Toyoku-mono, Ну да, конкретно эту задачу стандартная система прав Unix не решает. Просто во многих случаях хватает возможностей оной, так что не вижу ничего страшного. Нет, ACL не велосипед, просто надстройка, расширение возможностей, а велосипед — это изобретение заново того, что уже изобретено.
  • @Toyoku-mono, а есть возможность из демона сделать дебаг принт всех прав папки и посмотреть, где затык? или от рута список всех acl посмотреть?
  • @vbooh, Ок, ты давно смотрел как реализовывается "разрешить миру писать, но не удалять" в линуксах? Это же ЧУДОВИЩНО.
    Совершенно неинтуитивно, а все эти стики биты?
    Я вот прям вижу как это было — сделали права, ой, чего-то не хватат, напилил еще один бит, а потом еще...
    Этож "базар", а не "собор" :)
  • @complemento, От рута можно все.
  • @Toyoku-mono, Да регулярно смотрю уже на протяжении многих лет. Интуитивность в глубоко искусственных вещах типа моделей прав доступа к ФС весьма сомнительна, есть просто привычка, для меня интуитивны реализации именно в GNU/Linux.
  • @vbooh, Привычка и опыт полезны, спору нет. И логика, (своя!) в реализациях линуксов тоже есть, но она не всегда очевидна "беженцам из винды".
    Например, некоторые люди не могут понять систему каталогов линуксов, в том смысле что корень и примонтированные тома.
    Но вот права....мне кажется логичнее атомаризация как в винде, где все операции с файлом — отдельны, чем сложные, "магические" комбинации специальных битов как в линуксе.
    Смотришь на такую — и хз что она дает в реале.
    Конечно, это принцип "накликай галочек", но имхо тут это оправданно.
  • @Toyoku-mono, в винде же тоже тома примонтированные
  • @complemento, По факту — да. На уровне ядра там кстати все весьма в духе линукса, файловая система с корнем и проч.
    И снова да — можно у тома убрать букву и примонтировать как папку — юникс стайл.
    Но буквочки — это наше всьо
  • @Toyoku-mono, буквочки там вроде из какой-то допотопной операционки, её дарвинистского предшественника
  • @complemento, Дось? И к сожалению, в ближайшее время они никуда не денутся.
    Хотя, имхо, для оптических дисков буквочки — решение разумное. Уж слишком они по своим свойствам отличаются чтобы быть просто папочками
  • @Toyoku-mono, разрешить миру писать, но не удалять
    Truncate всё к чертям до нуля, и пусть хоть целуются со своими пустыми файлами :}
  • @Tenno-Seremel, типа чтоб в квоту уложиться?
  • @vbooh, Кстати, проблема решается через turbo_realpath — php.webtutor.pl
  • @Toyoku-mono, Какой-то несвежий сторонний модуль, которого нет в репах Debian/Ubuntu, который надо компилисть и ставить вручную, на мой взгляд, не явлвляется хорошим решением. Я бы просто не использовал open_basedir, а организовал ограничение доступа к ФС средствами ОС.
  • @vbooh, Компилится элементарно через phpize.
    Поставил, работает кстати. Тока после него phpinfo уже не выполняется, лол.
    Но сам по себе функционал — ок