LINUX.ORG.RU
решено ФорумAdmin

Как наладить отправку бэкапа одной кнопкой?

 ,


0

1

Нужно сделать скрипт на ноутбуке, который будет запаковывать домашнюю папку и отправлять на сервер в локалке. При этом пользователь должен ограничиться одним кликом по кнопке и не вводить никаких паролей. И второе условие - у него не должно быть доступа к пользователям, паролям и файлам «сервера» (это мой ПК, включеный 24/7/365). Мой ноут для этой цели использует авторизацию ssh по ключу, но давать такого доступа этому ноуту не нужно.

Пробовал настроить vsftpd на анонимный доступ к папке бэкапов, но или я что то не понял, или для этого папка бэкапов должна принадлежать пользователю ftp, иметь права rwxr-xr-x, и при этом нельзя складывать файлы прямо в неё, там должна быть вложена папка. Это создаёт дополнительные проблемы вроде как на пустом месте.

Помогите настроить ftpd или подскажите какую нибудь альтернативу.

★★★★★

Попробуйте все таки rssh

usermod -s /usr/bin/rssh username1

vi /etc/rssh.conf

...

allowscp

allowsftp

...

Ну и в /etc/ssh/sshd_config запереть его в home

И все , юзер не может ничего кроме как scp по ключу.

The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

This account is restricted by rssh. Allowed commands: scp sftp rsync

If you believe this is in error, please contact your system administrator.

constin ★★★★
()
Ответ на: комментарий от futurama

Я попробую, но права drwx-wx— у папки, куда стекаются бэкапы из 5 источников это будет проблема.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от futurama

Эти настройки вызывают «500 OOPS: vsftpd:refusing to run with writable root inside chroot()», так что способ не жизнеспособный.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от kirill_rrr

Так подключайся, ты меняешь шелл у юзеров на тот, который не позволяет им обычный ssh, но позволяет scp. При это своему юзеру ты оставляешь bash и подключаешься по паролю сколько влезет.

constin ★★★★
()

Имхо я дал самое лучшее решение для этой задачи идеально подходящее к кейсу. Пользователь может заливать файлы на сервер через ssh(scp) или sftp , но не может заходить на сервер. Если оно не понятно, могу разжевать.

constin ★★★★
()
Ответ на: комментарий от constin

Это приемлимый костыль, потому что на этом ноуте один юзер и рут - у него задачи - посёрфить, почту получить, документик распечатать. И у этого юзера блокируется нормальный ssh, которым я изредко пользуюсь. И при этом есть потенциальная дырка в виде лежащего ssh-ключа.

Вообще я не могу понять, почему в самом популярном ftp-сервере так странно реализована песочница пользователя. Или вот тебе полный доступ к ФС с правами системого пользолвателя, или окопы, противотанковые ежи и расстрел на подходе.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от kirill_rrr

Это не костыль. Это решение.

Пользователи сервера: root , kirill_rrr, backupuser. Пользователи дестопа: root, username

Сначала делаем ключи на десктопе: su username ssh-copy-id <SERVER-IP> -l backupuser -i /home/username/ssh/id_rsa.pub

Затем ( и это важно, что сначала надо скопировать ключи) На сервере :

usermod -s /usr/bin/rssh backupuser

vi /etc/rssh.conf

...

allowscp

allowsftp

...

Все. Теперь на десктопе скриптом , как там вам было надо из под username scp blabla.tar.gz backupuser@<SERVER-IP>:/home/backupuser/backup

А если ВАМ надо зайти по ssh на сервер, то

ssh kirill_rrr@<SERVER-IP>

Где тут костыль? Какие функции описанного вами кейса тут не работают?

constin ★★★★
()

Решил задачу через ftp и костыли:

Настройки vsftpd стандартные, но chroot-песочница vsftpd должна быть закрыта на запись, и в ней создана подпапка, открытая на запись, куда и будут отправляться бэкапы. Видимо это не обходится и складывать всё сразу куда нужно нельзя.

Скрипт на стороне клиента оказался не очевидным, нашёл рабочий вариант тут: http://www.opennet.ru/openforum/vsluhforumID1/91698.html

Осталось собрать всё вместе и заскриптовать перемещение и смену прав по хрону.

kirill_rrr ★★★★★
() автор топика

Как насчёт наоборот? Скрипт на ноутбуке собирает (опционально шифрует) бэкап, сервер в локалке (который имеет доступ только к бэкапам) забирает его прямо с ноутбука.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Идея хорошая. У меня только 2 проблемы:

«клиент» включается переодически, 99% времени он недоступен. Неразумно стучаться к нему каждые 5 минут, чтобы вытянуть бэкап-2-дня-назад.

«Клиенты» подключены к «серверу» через роутер с dd-wrt. «сервер» сидит на порту WAN чтобы сеть легко настраивалась через dhcp роутера. В этом случае всё просто, вроде бы безопастно для клиентов, но к ним нет доступа с «сервера». А как дать доступ - я не нашёл такой настройки, если она вообще предусмотрна.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от constin

Этот способ тоже реализовал. Похоже он действительно лучше.

kirill_rrr ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.