At Mon, 5 Dec 2011 12:24:23 +0400, Victor Wagner wrote: > > Народ, а посоветуйте как попараноидальнее организовать unattended backup > по rsync over ssh (на самом деле, rsnapshot, конечно). > > Что бы такое написать в /root/.ssh/authorized_keys, чтобы минимизировать > последствия в случае утечки секретного ключа с той машины, которая > инициирует бэкап? > > Пока что мне пришло в голову только > > command="/usr/local/sbin/rsynconly" ssh-dsa .... > > где /usr/local/sbin/rsynconly имеет вид > > #!/bin/sh > PATH="" > export $PATH > case "$SSH_ORIGINAL_COMMAND" in > *;*) > echo "Go away, you yellow earthworm!" > exit 1; > ;; > rsync\ *) > /usr/bin/$SSH_ORIGINAL_COMMAND > ;; > *) > echo "Go away, you yellow earthworm!" > exit 1; > ;; > esac > > Но что-то мою паранойю это не удовлетворяет. Ну во-первых, input > sanitizing явно недостаточный. Во-вторых, хотелось бы предотвратить не > только запуск команд, отличных от rsync, но и закачку файлов туда > посредством rsync.
command="/usr/local/sbin/bind-chroot-rsync --server --sender -logDtprRe.iL --numeric-ids . /",no-port-forwarding,no-X11-forwarding,no-pty где zsh% cat /usr/local/sbin/bind-chroot-rsync #!/bin/sh rc=0 root=/.bind-for-backups case "$SSH_ORIGINAL_COMMAND" in /usr/local/sbin/bind-chroot-rsync\ --server\ --sender\ *) set -- $SSH_ORIGINAL_COMMAND shift ;; *) echo "Invalid command $SSH_ORIGINAL_COMMAND" exit 2 ;; esac [ -d $root ] || /bin/mkdir $root for d in /; do if /bin/mount --bind -r $d $root$d; then umount_dirs="$root$d $umount_dirs" else rc=2 fi done if [ $rc = 0 ]; then # all mounts are good - do backup if /usr/sbin/chroot $root /usr/bin/rsync "$@"; then : else rc=$? fi fi for d in $umount_dirs; do /bin/umount $d urc=$? [ $rc = 0 ] && rc=$urc done exit $rc Однажды, года два назад, при смене версии rsync пришлось поменять параметры запуска. -- The last good thing written in C was Franz Schubert's Symphony number 9. -- Erwin Dieterich -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87ty5fjcxf.wl%...@ran.pp.ru