From aa30a8aeaced8648154c6cddb0959e55cd6ae8b6 Mon Sep 17 00:00:00 2001 From: elijah Date: Fri, 7 Oct 2005 16:02:27 +0000 Subject: [PATCH] applied patch to rdiff.helper, removed /etc/passwd from mysql handler. git-svn-id: http://code.autistici.org/svn/backupninja/trunk@189 758a04ac-41e6-0310-8a23-8373a73cc35d --- docs/changelog | 9 +++++++-- handlers/mysql | 2 +- handlers/rdiff.helper | 9 ++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/changelog b/docs/changelog index ee0d727..afd3097 100644 --- a/docs/changelog +++ b/docs/changelog @@ -1,8 +1,13 @@ version 0.9 -- unreleased + *** IMPORTANT CHANGE, UPGRADE AT ONCE *** + fixed insecure temporary file creation + ***************************************** removed erroneous magic file marker in pgsql handler - fixed insecure temporary file creation fixed incorrect find positional - + changed direct grep of /etc/passwd to getent passwd. + rdiff helper has much better information on failed ssh attempt + (patch from cmccallum@thecsl.org). + version 0.8 -- September 15 2005 added pgsql (PostgreSQL) handler, with vservers support. added vservers support to duplicity handler diff --git a/handlers/mysql b/handlers/mysql index 4ac631b..569b0a2 100644 --- a/handlers/mysql +++ b/handlers/mysql @@ -95,7 +95,7 @@ fi defaultsfile="" if [ "$dbusername" != "" -a "$dbpassword" != "" ]; then - home=`grep '^root:' /etc/passwd | awk -F: '{print $6}'` + home=`getent passwd "root" | awk -F: '{print $6}'` [ -d $home ] || fatal "Can't find root's home directory ($home)." mycnf="$home/.my.cnf" if [ -f $mycnf ]; then diff --git a/handlers/rdiff.helper b/handlers/rdiff.helper index 2ad2a49..8be68ac 100644 --- a/handlers/rdiff.helper +++ b/handlers/rdiff.helper @@ -81,7 +81,14 @@ do_rdiff_con() { echo "Copying root's public ssh key to authorized_keys of $rdiff_user@$rdiff_host. Specify the password for user $rdiff_user@$rdiff_host." ssh-copy-id -i /root/.ssh/id_[rd]sa.pub $rdiff_user@$rdiff_host if [ $? -ne 0 ]; then - msgBox "rdiff action wizard: error" "Failed to connect to $rdiff_user@$rdiff_host. Make sure you have the username and password correct." + echo "Couldn't copy root's public ssh key to authorized_keys of $rdiff_user@$rdiff_host. This time, testing whether directory is writable." + ssh $rdiff_user@$rdiff_host 'test -w .ssh || test -w .' + case $? in + 0 ) msgBox "rdiff action wizard: error" "Directories are writable: Probably just a typo the first time." ;; + 1 ) msgBox "rdiff action wizard: error" "Connected successfully to $rdiff_user@$rdiff_host, but unable to write. Check ownership and modes of ~$rdiff_user on $rdiff_host." ;; + 255 ) msgBox "rdiff action wizard: error" "Failed to connect to $rdiff_user@$rdiff_host. Check hostname, username, and password." ;; + * ) msgBox "rdiff action wizard: error" "Unexpected error." ;; + esac return else echo "Done. hit return to continue" -- 2.30.2