например, на сервере может быть закрыт доступ к /tmp во имя безопасности, кроме того, друпал при установке возьмет настройки временной папки из конфигов php, например, какой-нибудь /home/foo/mod-tmp, а при переносе сайта на другой хостинг, допустимая папка для временных файлов может оказаться /home/bar/mod-tmp, то есть, надо будет зайти в настройки и сменить этот путь.
в вашем случае files/tmp это будет папка DRUPAL_ROOT/files/tmp, то есть корень_друпала/files/tmp, довольно странное размещение...
/tmp это системная директория, доступная для чтения и записи всем пользователям системы. На шаред хостинге это означает, что любой аккаунт будет иметь доступ к вашим временным файлам. Среди этих файлов вполне могут оказаться приватные данные, например дамп базы данных сделанный модулем Backup and Migrate. Поэтому files/tmp вполне адекватный вариант.
это от настроек сервера зависит, если сервер настраивал не школьник, то проблем с приватностью быть не должно(есть множество различных средств контрацепции), а если школьник, то там кроме общего доступа во временную папку может так же быть и доступ далеко не ко временным файлам, например, к соседским settings.php даже если он с правами 0400
это от настроек сервера зависит, если сервер настраивал не школьник, то проблем с приватностью быть не должно(есть множество различных средств контрацепции),
Если сервер настраивал не школьник, то /tmp дожна быть доступна для чтения и записи всем пользователям. От этого зависит работоспособность приложений в системе. Поэтому за пробемы с приватностью временных файлов отвечает разработчик.
разве что файлы не будут сами от туда удаляться, как это было бы с системной папкой(скрипты не всегда за собой "прибирают"), при этом, скорее всего Вы сами не будете иметь прав на удаление этих файлов, при самом худшем раскладе можно захламить пространство жестком диске(актуально на патруле, где этого места довольно мало), последствия сами можете представить.
"Ch" wrote:
Если сервер настраивал не школьник, то /tmp дожна быть доступна для чтения и записи всем пользователям. От этого зависит работоспособность приложений в системе. Поэтому за пробемы с приватностью временных файлов отвечает разработчик.
любой юзер в системе может писать в папку /tmp, любой юзер может читать или изменять ТОЛЬКО СВОИ файлы в папке /tmp и не имеет доступа к файлам других пользователей в этой папке, такое происходит по причине того, что права на все файлы в папке /tmp 0600, и на большинстве ядер системы изменить эти права нельзя, максимум, что злоумышленник может от туда получить - это имена самих файлов, при этом, эти имена обычно временные, потому представляют из себя случайный и бесполезный набор букв и цифр.
"При этом, скорее всего Вы сами не будете иметь прав на удаление этих файлов"
Удаляю спокойно. Хотя там 400 КБ всего за год деятельности сайта.
это от настроек сервера зависит.
На некоторых хостингах для пользователей создается индивидуальная временная папка с очисткой от хлама и т.д.(например, папка tmp в корне вашей домашней папки)
"VasyOK" wrote:
На эти файлы права 644. На папку tmp 755. Разве так не должно быть?
это значит, что ваши файлы может прочесть любой сосед без исключения, правда тут тоже свои тонкости есть.
А почему именно 0600 ? Права на файлы могут быть абсолютно любые, за это отвечает приложение, которое их создает. Друпал по умолчанию ставит 0664, см drupal_chmod. Да и не спасет 600, если владельцем файла является допустим www-data. Сама директория /tmp в линукс системах обычно имеет 1777.
"VasyOk" wrote:
На эти файлы права 644. На папку tmp 755. Разве так не должно быть?
чтобы кроме владельца никто не имел доступа к файлу.
"Ch" wrote:
Права на файлы могут быть абсолютно любые, за это отвечает приложение, которое их создает
а вот и хрен, за это отвечает ОС ориентируясь на umask, а далее их можно поменять на любые, но не всегда для этого есть доступ
"Ch" wrote:
Друпал по умолчанию ставит 0664, см drupal_chmod
а какие должен выставлять? эта функция ставит такие права для загруженных в паблик файлов, поставьте на них 0600 или даже 0660 и в браузере у вас попросту не будет ни одной картинки на сайте, а вместо них 403 ошибка. 664 означают следующее(в идеале) - друпал может удалить или изменить загруженный им на сервер файл(обычно это картинки или вложения прикрепленные через IMCE или модуль file), пользователь веб мастера может удалить или изменить загруженный друпалом файл(в идеале php и вебмастер должны входить в одну группу), и nginx или что там у вас должен иметь права на чтение этого файла для передачи его по http протоколу
"Ch" wrote:
Да и не спасет 600, если владельцем файла является допустим www-data. Сама директория /tmp в линукс системах обычно имеет 1777.
повторюсь еще раз, если вы смогли почесть чужой временный файл, то так же сможете прочесть и чужой settings.php получив пароль и логин к чужой БД, на фига этот геморой с временными файлами когда все можно сделать гораздо проще?
при нормальной настройке безопасности на хостинге, у вас пользователь php процессов будет уникальным, не равным www-data или еще кому-то, либо же у вас попросту не будет доступа к папке /tmp или вообще куда-то за пределы вашей домашней папки.
PS чтобы предупредить кучу бессмысленных постов, сразу скажу - на apache-mpm-prefork свет клином не сошелся, на нормальных шаред хостингах его давно уже не используют, и прежде чем что-то еще писать, сперва погуглите mpm-itk, например.
а вот и хрен, за это отвечает ОС ориентируясь на umask, а далее их можно поменять на любые, но не всегда для этого есть доступ
В каком дистрибутиве файлы получают chmod = 600 по умолчанию? Дефолтную маску можно менять из приложения (см. umask). Некоторые фреймворки так и делают, либо как друпал вызывают chmod после создания файла. Поэтому за права доступа к файлу отвечает именно приложение.
"sg85" wrote:
повторюсь еще раз, если вы смогли почесть чужой временный файл, то так же сможете прочесть и чужой settings.php
А как же я его прочту? Он ведь в чужой домашней директории, которая в отличии от /tmp закрыта для чтения.
Пару лет назад проверял /tmp на нескольких популярных хостингах (в т.ч. на it-patrol). В каждом случае в ней была куча доступных для чтения файлов с разных аккаунтов.
В каком дистрибутиве файлы получают chmod = 600 по умолчанию?
например, в debian php-fpm(dotdeb) имеет umask 0077 по умолчанию.
"Ch" wrote:
Дефолтную маску можно менять из приложения (см. umask)
из приложения можно так же выполнить абсолютно любую shell команду, и что дальше?
"Ch" wrote:
Пару лет назад проверял /tmp на нескольких популярных хостингах (в т.ч. на it-patrol). В каждом случае в ней была куча доступных для чтения файлов с разных аккаунтов.
то есть, если их переложить в другую папку, то их нельзя будет прочесть? мне это напоминает суеверие с изменением порта для SSH, этим вы лишь на несколько минут отсрочите неизбежное.
Единственная ситуация, когда есть смысл убирать файлы из /tmp, это если единственная(то есть других защит нет, ВООБЩЕ) защита от доступа к чужим данным на сервере это open_basedir и при этом /tmp находится в списке разрешенных, тогда да, убираем временную папку к себе, однако, необходимо убрать права на чтение\запись для всех остальных пользователей и группы, или, как минимум, закрыть доступ к самой папке(тогда для доступа надо будет знать точный адрес файла), в противном случае все это лишено какого-либо смысла.
Комментарии
например, на сервере может быть закрыт доступ к /tmp во имя безопасности, кроме того, друпал при установке возьмет настройки временной папки из конфигов php, например, какой-нибудь /home/foo/mod-tmp, а при переносе сайта на другой хостинг, допустимая папка для временных файлов может оказаться /home/bar/mod-tmp, то есть, надо будет зайти в настройки и сменить этот путь.
в вашем случае files/tmp это будет папка DRUPAL_ROOT/files/tmp, то есть корень_друпала/files/tmp, довольно странное размещение...
/tmp это системная директория, доступная для чтения и записи всем пользователям системы. На шаред хостинге это означает, что любой аккаунт будет иметь доступ к вашим временным файлам. Среди этих файлов вполне могут оказаться приватные данные, например дамп базы данных сделанный модулем Backup and Migrate. Поэтому files/tmp вполне адекватный вариант.
это от настроек сервера зависит, если сервер настраивал не школьник, то проблем с приватностью быть не должно(есть множество различных средств контрацепции), а если школьник, то там кроме общего доступа во временную папку может так же быть и доступ далеко не ко временным файлам, например, к соседским settings.php даже если он с правами 0400
Если ставить
files/tmp
противопоказания есть?
Если сервер настраивал не школьник, то /tmp дожна быть доступна для чтения и записи всем пользователям. От этого зависит работоспособность приложений в системе. Поэтому за пробемы с приватностью временных файлов отвечает разработчик.
разве что файлы не будут сами от туда удаляться, как это было бы с системной папкой(скрипты не всегда за собой "прибирают"), при этом, скорее всего Вы сами не будете иметь прав на удаление этих файлов, при самом худшем раскладе можно захламить пространство жестком диске(актуально на патруле, где этого места довольно мало), последствия сами можете представить.
любой юзер в системе может писать в папку /tmp, любой юзер может читать или изменять ТОЛЬКО СВОИ файлы в папке /tmp и не имеет доступа к файлам других пользователей в этой папке, такое происходит по причине того, что права на все файлы в папке /tmp 0600, и на большинстве ядер системы изменить эти права нельзя, максимум, что злоумышленник может от туда получить - это имена самих файлов, при этом, эти имена обычно временные, потому представляют из себя случайный и бесполезный набор букв и цифр.
"При этом, скорее всего Вы сами не будете иметь прав на удаление этих файлов"
Удаляю спокойно. Хотя там 400 КБ всего за год деятельности сайта.
На эти файлы права 644. На папку tmp 755. Разве так не должно быть?
это от настроек сервера зависит.
На некоторых хостингах для пользователей создается индивидуальная временная папка с очисткой от хлама и т.д.(например, папка tmp в корне вашей домашней папки)
это значит, что ваши файлы может прочесть любой сосед без исключения, правда тут тоже свои тонкости есть.
Мне попадались хостинги, где если пых создал файл, то снести его мог только пых.
А почему именно 0600 ? Права на файлы могут быть абсолютно любые, за это отвечает приложение, которое их создает. Друпал по умолчанию ставит 0664, см drupal_chmod. Да и не спасет 600, если владельцем файла является допустим www-data. Сама директория /tmp в линукс системах обычно имеет 1777.
Не должно быть. См. http://drupal-kalabro.tumblr.com/post/67294710925/drupal
чтобы кроме владельца никто не имел доступа к файлу.
а вот и хрен, за это отвечает ОС ориентируясь на umask, а далее их можно поменять на любые, но не всегда для этого есть доступ
а какие должен выставлять? эта функция ставит такие права для загруженных в паблик файлов, поставьте на них 0600 или даже 0660 и в браузере у вас попросту не будет ни одной картинки на сайте, а вместо них 403 ошибка. 664 означают следующее(в идеале) - друпал может удалить или изменить загруженный им на сервер файл(обычно это картинки или вложения прикрепленные через IMCE или модуль file), пользователь веб мастера может удалить или изменить загруженный друпалом файл(в идеале php и вебмастер должны входить в одну группу), и nginx или что там у вас должен иметь права на чтение этого файла для передачи его по http протоколу
повторюсь еще раз, если вы смогли почесть чужой временный файл, то так же сможете прочесть и чужой settings.php получив пароль и логин к чужой БД, на фига этот геморой с временными файлами когда все можно сделать гораздо проще?
при нормальной настройке безопасности на хостинге, у вас пользователь php процессов будет уникальным, не равным www-data или еще кому-то, либо же у вас попросту не будет доступа к папке /tmp или вообще куда-то за пределы вашей домашней папки.
PS чтобы предупредить кучу бессмысленных постов, сразу скажу - на apache-mpm-prefork свет клином не сошелся, на нормальных шаред хостингах его давно уже не используют, и прежде чем что-то еще писать, сперва погуглите mpm-itk, например.
Пару лет назад проверял /tmp на нескольких популярных хостингах (в т.ч. на it-patrol). В каждом случае в ней была куча доступных для чтения файлов с разных аккаунтов.
например, в debian php-fpm(dotdeb) имеет umask 0077 по умолчанию.
из приложения можно так же выполнить абсолютно любую shell команду, и что дальше?
то есть, если их переложить в другую папку, то их нельзя будет прочесть? мне это напоминает суеверие с изменением порта для SSH, этим вы лишь на несколько минут отсрочите неизбежное.
Единственная ситуация, когда есть смысл убирать файлы из /tmp, это если единственная(то есть других защит нет, ВООБЩЕ) защита от доступа к чужим данным на сервере это open_basedir и при этом /tmp находится в списке разрешенных, тогда да, убираем временную папку к себе, однако, необходимо убрать права на чтение\запись для всех остальных пользователей и группы, или, как минимум, закрыть доступ к самой папке(тогда для доступа надо будет знать точный адрес файла), в противном случае все это лишено какого-либо смысла.
так как так вышло, что временные файлы открыты для чтения, а постоянные закрыты?)
Дальше надо нужно настраивать приложение так, чтобы настройки сервера не влияли на безопасность приложения.
В домашней папке нельзя будет конечно. Это типовая конфигурация на шаред хостинге, 777 для /tmp и 750 для домашней директории.