![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| mark2009 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
Добрый день!
Разберём ситуацию с самого начала. Есть на сервере FTP. И есть пользователь, который этим FTP рулит. К примеру пользователь A с группой А. Есть сервер Apache, которым рулит пользователь B. Проще говоря, сервер работает из-под пользователя B с группой B. Есть PHP который работает как модуль к Apache, соответственно имеет того же пользователя и группу. Теперь внимание - подготовка к вопросу. Некий скрипт создаёт некий файл на сервере. Я имеб доступ к этому файлу по FTP, однако он мне бесполезен: владельцем файла является пользователь B, а я захожу на FTP под A. Соответственно не могу с файлом ничего сделать. Теперь внимание - шок!
Собственно что из этого кода видно? Я зашёл под рутом, зашёл в определённую папку. В ней есть файл first_page.tpl. Но при попытке изменить владельца этого файла, система мне говорит, что такого файла нет. Имя третьей папки изменено (XXX) по соображениям безопасности, на суть вопроса это вообще никак не влияет. Внимание - вопрос! Как такое вообще может быть? Как сделать так, чтобы создавая файлы скриптами, я бы имел доступ на изменение прав по FTP? |
|||
|
||||
| mark2009 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
У меня на серваке стоит Smarty. Который компилирует шаблоны в PHP-код и сохраняет их в папке. Так вот, он их сохраняет, у них пользователь и группа сервачная (апач), НО: удаляются они легко, прям на раз.... а мои созданные файлы удалить невозможно. Как такое может быть?
|
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
PHP тут не причем. Неверная настройка сервера
-------------------- Amazing |
|||
|
||||
| mark2009 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
MoLeX,
Вот спасибо за такой ответ... Сейчас с превеликим трудом убрал на сервере php_admin_value open_basedir. Думал в этом проблема, ан нет... Подскажите пожалуйста, каким образом поменять настройку сервера? PS Да, и объясните пожалуйста тогда, почему при неверной настройке сервера, скрипты, созданные smarty, можно легко удалить, а мои - нет. Только потому что там расширение php а здесь tpl? Да не поверю никогда в жизни... Это сообщение отредактировал(а) mark2009 - 28.3.2012, 14:24 |
|||
|
||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
1. у созданных Вами файлов пользователь/группа такие же? 2. а какие права на файлы, созданные Smarty и создаваемые Вами 3. "мои созданные файлы" - созданные как? php, samba, nfs, непосредственно из shell, иначе? Добавлено через 5 минут и 32 секунды
присваивать файлам соответствующие правила доступа. например, давать им определенную группу, куда входит искомый ftp пользователь, и предоставлять нужные права группе. понятно, что и пересекаются только, если они - other включите их обоих в группу С, присвойте файлу группу С, дайте права на чтение/запись группе Добавлено через 13 минут и 59 секунд обратите внимание: права владелец может менять как хочет, вплоть до лишения себя прав. а вот владельца файла может сменить только root. группу поменять может владелец файла, но только на группу, в которую он входит сам |
||||
|
|||||
| mark2009 |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
baldina,
Отвечаю конкретно на поставленные вопросы. 1. У созданных мной файлов группа/пользователь сервера (у файлов, залитых на фтп - группа/пользователь - те, под которым запущен сервер фтп. 2. Абсолютно одинаковые! Это-то и изумляет! 3. Созданные с помощью php (fopen('file.php', 'w'), fwrite(), fclose())... Согласен. Было дело:
В итоге получил: Operation not permitted. Сейчас новое. В каталоге templates есть созданный мной файл sec.tpl. Шаблон. Но при попытке вызова из php, smarty упорно не может прочитать этот файл. Желая докопаться до причины (может это у меня руки кривые) я написал предельно простой скрипт:
Как думаете, что получил в ответ? Правильно:
Этот файл имеется, но им владеет пользователь апача, а не пользователь ftp. Простите за грубость, но за каким чёртом выскакивает предупреждение о том, что этого файла вообще не существует?
Имеется в виду дать права на чтение и запись для ftp? Тогда под чем у меня должен быть ftp запущен? |
||||||||
|
|||||||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Я быть может что-то путаю, но на мой взгляд многовато точечек между слешами сделайте
Что он вам выведет? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| mark2009 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
Fortop,
Точечки поставлены из соображений информационной безопасности:) так-то там реальный путь прописан. А предложенное вами вывело вот что:
Это сообщение отредактировал(а) mark2009 - 28.3.2012, 15:37 |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Это значит что построенный вами путь не резолвится. Проверяйте его полностью. Добавлено через 8 минут и 57 секунд А кстати, не chroot'ed ли у вас окружение? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| mark2009 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
||||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
http://stackoverflow.com/questions/75182/d...ail-from-within Добавлено через 21 секунду Ну и вообще погуглите "how to detect chroot" -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| mark2009 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
Накопал вот такой вот скрипт:
Он мне вывел
Т.е. нет chroot'а? |
||||
|
|||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Ваш Apache работает из под apache:apache
А FTP от ftp:ftp ? -------------------- Amazing |
|||
|
||||
| mark2009 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
MoLeX,
Про сервак правильно, а FTP работает от имени пользователя, созданного в ISP Manager. Ну, считайте что ftp:ftp )) в принципе пользователь другой, но пользователь с группой совпадает, дела это не меняет как бы ) |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
так, вот Smarty выполняется от apache:apache и соответственно может создавать, выполнять, удалять файлы.
FTP от (допустим) user01:user01 и созданные через него файлы apache выполнить не может
правильно настроить права, а лучше чтобы скрипты выполнялись не из под apache, а из под user01 -------------------- Amazing |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |