nixp.ru v3.0

23 октября 2017,
понедельник,
05:40:25 MSK

DevOps с компанией «Флант»
n0mad написал 31 января 2011 года в 13:41 (2016 просмотров) Ведет себя неопределенно; открыл 8 тем в форуме, оставил 9 комментариев на сайте.

здравствуй многоуважаемый Олл.

Озадачился уёб дизайном, и тут-же огреб проблему.

Знаю 2 зеркальщика: lftp и mirrordir но оба не катят.

Надо чтобы зеркалились только изменившиеся/новые файлы

и при зерклении не менялись права подкаталогов.

lftp: Все замечательно, но при закачке файлов зачем-то меняет права

на подкаталоги и подкаталог имевший права 777 вдруг становится 755

и соответственно php скрипт туда уже файлы не может писать, ибо он работает

от apache а подкаталог делается через ftp и владелец подкаталога юзер.

mirrordir: Замечательно гоняет и вверх и вниз, но если файлы за промежуток

времени изменились и локально и удаленно (одни локально, другие удаленно)

то получим в месте назначения перезапись более новых файлов более старыми

и в лучаекогда я скажем поправил какие-то .php,.html файлы а на сервере обновились логи

воникают ножницы… если зеркалить с сервера то новые файлы .php затрутся старыми

а логи обновятся, если наоборот то обновятся на сервере .php файлы а логам будет труба.

Кто чего посоветует?

mirenix

А что если после зеркалирования сделать запуск скрипта, который ставит правильные права на файлы и папки?

n0mad

Ну чайник я, чайник. Подскажите чайнику как написать скрипт по ftp меняющий права доступа. На ремотной стороне я даже не юзер, я просто ftp юзер, а то что кладу уже апачем кушается. (Бесплатный хостинг)

dfghm

lftp

Чтобы это исправить, пишем в /etc/lftp.conf (ну или в ~/.lftp) такую строчку:

set mirror:set-permissions off 


(с) linuxopen.ru/2008/09/15/gramotnye-nastrojjki-lftp.html

n0mad

Спасибо за грамотный ответ, но оно увы не поможет :(

Оно перестает играться правами, но увы это не помогает. Потому как без играния

(да и вообще права как-то странно выставляются) все вновь закачиваемые файлы будут иметь

права 644, что в моем случае не слишком поможет. Скрипты так можно закачивать, не требуется чаще всего чтобы сервер в них писал,

а вот какой-нибудь файл настроек сгенеренный локально и открытый на запись всем туда с помощью lftp как-то не льется :(

 

В общем что-то грабли сплошные, даже и не знаю с какой стороны за них взяться.

1. Выставление прав доступа

2. ftp от имени пользователя а php от apache

или ftp от имени пользователя

первое более секурно, потому как дыры в скриптах не сумеют записать туда где запрещено писать всем кроме

хозяина.

второй вариант позволит не заморачиваться с правами при закачке, но любая дыра в скрипте и тот может писать во все файлы

пользователя.

 

В общем что-то пока сплошная головная боль от этих ограниченных фрихостингов.

Толи дело личная Linux машина скажем на VPS хостинге.

 

dfghm

Прочитал дважды. Но не понял в чем проблема.

n0mad

Не просекаю идеологии. Осваиваю фришный хостинг.

Есть 2 случая:

Пользователи из под которых пускаются сервисы:

1. ftp=user apache=user

2. ftp=user apache=apache

В первом случае все хорошо, но любой скрипт может писать любой юзерский файл

Но это не на всех хостингах. Более другой хостер использует второй вариант и файл записанный

по ftp будет иметь владельца=user а PHP скрипт будет пускаться от апача, соответственно будем иметь

возможность из PHP писать только в файл с разрешенной записью для others. Все-бы ничего если через панель управления файлы закачивать и права доступа выставлять, но хочется зеркалированием это делать, однако тут проблемы с правами на файлы и подкаталоги. lftp или косячит с правами или пишет файлы с правами скажем 644 что не даст такому файлу быть записанным скриптом а хочется не лазить скажем каждый раз в веб панель управления для апдейта скажем конфига… хочется его локально обновить и позвать lftp чтобы он на сервер обновленное закинул.

С ситуацией с правами справляется mirrordir, но он апдейтит ВСЕ различающиеся файлы а не только более старые.

Вот в том и проблема что фрихостер и не поднимешь скажем rsync, есть только ftp а по ftp нормально апдейтить сохраняя права и перезаписывая только более старые файлы не нашел чем. Или права не сохраняют или пишут ВСЕ — затирая более новые логи на сервере протухшими логами с прошлого зеркала. А мне надо чтобы скажем скрипты апдейтились с локального на сервер а логи не трогались а при запуске обратной закачки как раз скачиваличь на локальный диск. Пробовал lftp, mirrordir, wget, wput.