У меня имеется локальный сервер для разработки сайтов. Когда разработка завершается, необходимо загрузить данные на удалённый сервер, но я не могу определиться c выбором протокола передачи. Взять, например, загрузку по SFTP. Пишут, что это самый безопасный вариант, да и удобный, но для него нужно создавать пользователя, которому давать права на каталоги. У меня владелец сайтами www-data, и изменить его я, получается, не могу, а если создавать файлы от другого пользователя, права будут отличаться и уже Web-сервер не будет иметь доступ. Устанавливать пароль и авторизовываться пользователем www-data тоже не рекомендуют.
Понятно, что есть FTPS, но всё чаще рекомендуют использовать SFTP.
В системе у меня один пользователь для аутентификации, и вход проходит исключительно по SSH-ключу, а аутентификация по паролю вовсе выключена.
Арендовать хостинг для меня тоже не вариант, так как на сервере крутится ПО, необходимое не только для сайтов. Потратив немало времени на поиск ответов, найти их у меня так и не получилось. И к сожалению, иногда мне приходится возвращаться к ним снова.
Вопросы:
1. Как Вы передаёте файлы на сервер?
2. В каком случае лучше использовать тот или другой протокол?
3. Если в таком случае есть какой-то другой вариант, прошу направить меня в правильном направлении.
Константин Б., Пробовал. Добавление в группу не позволяет редактировать файлы или создавать новые, так как владелец файла отличается, несмотря на то, что они находятся в одной группе.
MultiGramen, а это потому, что у вас права на папки 700, а не 770.
Но вообще постановка вопроса дикая: у меня есть админский вход, как мне извратиться так, чтобы деплой шел от админа, но не от админа? Очевидный и простейший ответ - деплоить пользователем, от которого запускается сайт.
Нет, это не обязательно www-data. И нет, ничего более опасного в том, что у вас открыт вход не одному пользователю, а двоим, нет.
Adamos, Если задать права 770, другие пользователи (пользователи сайта) не смогут набезобразничать на сервере? Я просто не очень понимаю, какие у них права, когда они открывают сайты. В какую группу они входят по-умолчанию? разве это не www-data?
MultiGramen, вы задаете вопрос, не давая информации для ответа. Ваш пользователь - администратор? У вас есть другие пользователи со своими сайтами? Какого черта вы тогда вообще пытаетесь деплоить администратором, а не создали еще одного пользователя сайта?
Другие пользователи сайта? Обычные пользователи WEB-сайта что-ли? Они "общаются" с WEB-сервером (например Apache или Nginx), который работает с правами пользователя www-data. Соответственно и интерпретатор языка программирования, на котором написан WEB-сайт (например PHP, или Python) тоже работает с правами пользователя www-data. Такие дела.
Просто подключаем удаленную папку /var/www/html как локальную через sshfs и просто в обячном проводнике (любой: Nemo, Nautilus, МС...) копируем папку с данными как локальную... не надо никаких клиентов, никаких заморочек с настройками и все вот это https://losst.ru/podklyuchenie-i-nastrojka-sshfs-v...
А какие права в данном случае нужно выдать? Ведь владелец может быть только один, а при добавлении в группу не получается взаимодействовать с файлами и папками другому пользователю. Никто ведь не будет каждый раз при изменениях менять права, если Вы об этом.
Чем больше знаю, тем лучше понимаю, как мало знаю.
1. Архивируете папку с файлами в ZIP/TAR+GZIP.
2. Устанавливаете на хосте пакет lrzsz.
3. Входите на хост по SSH в SSH-клиенте, поддерживающем передачу файлов через xmodem/ymodem/zmodem.
4. Для передачи по протоколу zmodem даёте команду rz - должно появится окно выбора файла для передачи - выбираете - ждёте окончания передачи... Потом конечно раз-архивируете, копируете куда надо, назначаете владельца и права доступа, и т.д.
5. Вроде-бы PROFIT!