[Da-tools-commits] ./debian/userdir-ldap r472: ud-replicate: Sync only ssh_known_hosts into chroots, not ssh*.

Peter Palfrader peter at palfrader.org
Sun Oct 26 21:32:16 UTC 2008


------------------------------------------------------------
revno: 472
committer: Peter Palfrader <peter at palfrader.org>
branch nick: userdir-ldap
timestamp: Sun 2008-10-26 22:32:16 +0100
message:
  ud-replicate: Sync only ssh_known_hosts into chroots, not ssh*.
  ud-replicate: Clean up better, correcting some mistakes done by earlier versions.
modified:
  debian/changelog
  ud-replicate
-------------- next part --------------
=== modified file 'debian/changelog'
--- a/debian/changelog	2008-10-26 21:31:35 +0000
+++ b/debian/changelog	2008-10-26 21:32:16 +0000
@@ -4,8 +4,11 @@
   * ud-generate: Add [NOMARKERS] flag to not push markers (gps coordinates) to host.
   * ud-replicate: Use --delete-after with rsync.  Previously we didn't delete
     stuff ever.
+  * ud-replicate: Sync only ssh_known_hosts into chroots, not ssh*.
+  * ud-replicate: Clean up better, correcting some mistakes done by earlier
+    versions.
 
- -- Peter Palfrader <weasel at debian.org>  Sun, 26 Oct 2008 22:30:55 +0100
+ -- Peter Palfrader <weasel at debian.org>  Sun, 26 Oct 2008 22:31:46 +0100
 
 userdir-ldap (0.3.44) unstable; urgency=low
 

=== modified file 'ud-replicate'
--- a/ud-replicate	2008-10-26 21:31:35 +0000
+++ b/ud-replicate	2008-10-26 21:32:16 +0000
@@ -95,22 +95,41 @@
 fi
 if [ -n "$CHROOTS" ]; then
 	for c in $CHROOTS; do
+		if [ "$c" = "/" ] || [ "$c" = "" ]; then
+			echo "$0 WTF: \$c is '' or '/' here." 2>&1
+			exit 1
+		fi
 		if [ -x "$c/usr/bin/makedb" ]
 		then
-
-			test ! -d "$c/var/lib/misc/$HOST" || mkdir -p "$c/var/lib/misc/$HOST"
-
-			rsync -a ${verbose} $HOST/group.tdb $HOST/passwd.tdb $HOST/ssh* "$c/var/lib/misc/$HOST"
-
-			test ! -f "$c/var/lib/misc/$HOST/shadow.tdb" || rm -f "$c/var/lib/misc/$HOST/shadow.tdb"
-			test ! -f "$c/var/lib/misc/shadow.db" || rm -f "$c/var/lib/misc/shadow.db"
-
+			mkdir -p "$c/var/lib/misc/$HOST"
+
+			# remove extra stuff from earlier times and so
+			find "$c/var/lib/misc/$HOST" -mindepth 1 \
+				! -name group.tdb -a \
+				! -name passwd.tdb -a \
+				! -name ssh_known_hosts \
+				-print0 | xargs --no-run-if-empty -0 rm -f
+			rsync -a ${verbose} $HOST/group.tdb $HOST/passwd.tdb $HOST/ssh_known_hosts "$c/var/lib/misc/$HOST"
+
+			# clean up from the times we supposedly did shadow stuff in chroots
+			rm -f "$c/var/lib/misc/shadow.db"
+
+			# from failed makedb runs earlier.
+			rm -f "$c/var/lib/misc/passwd.db.t" \
+			      "$c/var/lib/misc/group.db.t"
+			# build passwd information
 			chroot "$c" makedb "/var/lib/misc/$HOST/passwd.tdb" -o /var/lib/misc/passwd.db.t
 			chroot "$c" makedb "/var/lib/misc/$HOST/group.tdb" -o /var/lib/misc/group.db.t
 			mv -f "$c/var/lib/misc/passwd.db.t" "$c/var/lib/misc/passwd.db"
 			mv -f "$c/var/lib/misc/group.db.t" "$c/var/lib/misc/group.db"
+
 			ln -sf "$HOST/ssh_known_hosts" "$c/var/lib/misc/"
-			ln -sf ../../var/lib/misc/ssh_known_hosts "$c/etc/ssh"
+			if [ -d "$c/etc/ssh" ]; then
+				ln -sf ../../var/lib/misc/ssh_known_hosts "$c/etc/ssh"
+			elif [ -L "$c/etc/ssh" ] && [ "`readlink \"$c/etc/ssh\"`" = "../../var/lib/misc/ssh_known_hosts" ]; then
+				# clean up past mistakes
+				rm -f "$c/etc/ssh"
+			fi
 		fi
 	done
 fi



More information about the Da-tools-commits mailing list