Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: rsync. Бэкап с правами рута от юзера. [РЕШЕНО / SOLVED]  (Прочитано 3329 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Решение:

В общем активировал учётку root(passwd root) и разрешил ей заходить по ssh с одной машины(s1) на другую(s2), путём добавления на s2 строк в /etc/sshd_config:
PermitRootLogin yes
StrictModes yes
AllowUsers usr-adm root@192.168.0.2
Т.е. заходить под рутом можно только с определённого ip и без пароля(настроена безпарольная аутентификация на основе ключей).


Сама тема:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 19 Мая 2011, 11:13:50 от Brunen »

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Шаг за шагом можно достичь цели.

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #2 : 11 Мая 2011, 12:53:31 »
http://rsync.samba.org/documentation.html (:
Шутку понял. Смешно.

Но по сути нужен пример команды, с заходом по ssh обычным пользователеи и копированием данных из под рута с сохранением прав.
Под рутом я захожу обычно так:
usr-adm@s1:~$sudo bash
Ввожу пароль учётки usr-adm
#Та-да!

rsync -a --delete --delete-excluded /var/mail/ usr-adm@192.168.0.2:/var/mail - пишет:
rsync: chgrp "/var/mail/company-1." failed: Operation not permitted (1)
....
Т.к. копирование идёт с ограниченными правами. Каким образом сделать? Разрешить юзать rsync пользователю usr-adm через /etc/sudoers? Как лучше?
« Последнее редактирование: 11 Мая 2011, 12:56:17 от Brunen »

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #3 : 11 Мая 2011, 13:08:06 »
в кронтабах в /etc/cron.d/ можно указывать от какого пользователя выполнять задачу.

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #4 : 11 Мая 2011, 13:09:17 »
Самый простой способ для задачи из 1 сообщения - скрипт
монтирует каталог по ssh
find находит список файлов измненных сегодня и скармливает его cp -p
Все это из под рута, если нужно, потом можно сделать частичный chown
Шаг за шагом можно достичь цели.

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #5 : 11 Мая 2011, 13:14:08 »
Самый простой способ для задачи из 1 сообщения - скрипт
монтирует каталог по ssh
find находит список файлов измненных сегодня и скармливает его cp -p
Все это из под рута, если нужно, потом можно сделать частичный chown

Уф!!! Может проще через rsync как-то сделать?  :-[
Тем более у него ключ "-a" позволяет сохранять права/владельца копируемых файлов.

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #6 : 11 Мая 2011, 13:15:54 »
cp -p делает тоже самое
можно и через rsync
только тут я вам 1-у команду не скажу.
там надо потратить время на настрйоку демона.
Шаг за шагом можно достичь цели.

Оффлайн BigDogs.Ru

  • Участник
  • *
  • Сообщений: 100
  • Да, это ДОГ
    • Просмотр профиля
    • BigDogs.Ru
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #7 : 11 Мая 2011, 14:08:43 »
1) Настраиваете авторизацию рута по ключу на том сервере, с которого будете заливать бэкап (хорошая инструкция «для чайников» тут: http://lib.clodo.ru/linux-security/security-basics/ )
2) На том компьютере, на который будете заливать бэкап, открываете рутовский крон (sudo crontab -e)
3) Собственно команда (возможно, не идеальна по параметрам — но у меня работает и бэкапит с сохранением прав) бэкапа ежедневного в 2 часа ночи:
00 02 * * * rsync -h --progress --stats -r -tgo -l -p -D --delete-after -e ssh root@IP_servera:/директория/которую/надо/бэкапить/ /директория/в/которую/бэкапим/

Хорошая статья про rsync: http://evgeny.igumnov.com/wiki/148/457_rsync

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #8 : 11 Мая 2011, 16:49:32 »
1) Настраиваете авторизацию рута по ключу на том сервере, с которого будете заливать бэкап (хорошая инструкция «для чайников» тут: http://lib.clodo.ru/linux-security/security-basics/ )
2) На том компьютере, на который будете заливать бэкап, открываете рутовский крон (sudo crontab -e)
3) Собственно команда (возможно, не идеальна по параметрам — но у меня работает и бэкапит с сохранением прав) бэкапа ежедневного в 2 часа ночи:
00 02 * * * rsync -h --progress --stats -r -tgo -l -p -D --delete-after -e ssh root@IP_servera:/директория/которую/надо/бэкапить/ /директория/в/которую/бэкапим/

Авторизация по ключам(т.е. без паролей) настроена между этими двумя серверами. Если запустить команду из п.3 - rsync попытается зайти на резервный сервер(s2) по ssh с правами root, а так как доступ к руту напрямую закрыт("PermitRootLogin no" в sshd_config), то и забекапить с сервера s1 на s2 - не получится.
В том-то и вопрос, чтобы зайти рсинком по ссш обычным юзером(имеющий права сделаться рутом) и забекапить информацию уже с правами рута.


Пользователь решил продолжить мысль 11 Мая 2011, 17:14:21:
cp -p делает тоже самое
можно и через rsync
только тут я вам 1-у команду не скажу.
там надо потратить время на настрйоку демона.

Про настройку демона почитал и как понял, в его настройках прописываются директории, куда будут складироваться бэкапы, но там же выставляются и права/владелец на эти "опубликовнанные" директории. Если же у меня в /var/mail - два ящика с разными владельцами - получается, на каждого нужно в rsyncd.conf писать отдельный модуль:

/etc/rsyncd.conf
[company-1]
 comment = maildb company-1
 path = /var/mail/company-1
 use chroot = true
 uid = company-1
 gid = company-1
 log file = /var/log/rsyncd/backl_company-1.log
 read only = false
 write only = false
 hosts allow = s1 s2
 hosts deny = *
 transfer logging = false

[company-2]
 comment = maildb company-2
 path = /var/mail/company-2
 use chroot = true
 uid = company-2
 gid = company-2
 log file = /var/log/rsyncd/backl_company-2.log
 read only = false
 write only = false
 hosts allow = s1 s2
 hosts deny = *
 transfer logging = false

Так получается?
« Последнее редактирование: 11 Мая 2011, 17:23:27 от Brunen »

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Re: rsync. Бэкап с правами рута от юзера.
« Ответ #9 : 19 Мая 2011, 11:11:13 »
В общем активировал учётку root(passwd root) и разрешил ей заходить по ssh с одной машины(s1) на другую(s2), путём добавления строк в /etc/sshd-config:
PermitRootLogin yes
StrictModes yes
AllowUsers usr-adm root@192.168.0.2

Т.е. заходить под рутом можно только с определённого ip и без пароля, так как под рутом настроил безпарольную аутентификацию на основе ключей.

 

Страница сгенерирована за 0.048 секунд. Запросов: 25.