various fixes
[automated-distro-installer] / fai / config / distro-install-common / end
index c68be2cbd5fcededa47b0e83a6a9b50030fac1b4..629e47ad5ee9c7e727cba56da2611eeab58a5dab 100755 (executable)
@@ -27,12 +27,12 @@ chpw() {
     if [[ $pwfile && -e $pwfile ]]; then
         printf "$user:" | cat - "$pwfile" | $ROOTCMD chpasswd -e
     else
-        echo "$0: warning: no pw set for $user"
+        echo "$0: warning: no pw set for $user" >&2
     fi
 }
-au() {
-    if ! $ROOTCMD getent passwd $1; then
-        $ROOTCMD useradd -m -s /bin/bash $1 || [[ $? == 9 ]]
+au() { # add user
+    if ! $ROOTCMD getent passwd ${@: -1}; then
+        $ROOTCMD useradd -m -s /bin/bash $@
     fi
 }
 
@@ -66,19 +66,29 @@ if [[ ! -e $f ]] || ! grep -xF "$line" $f; then
     echo "$line" >> $f
 fi
 
+# ssh host keys
+# note, $BASH_SOURCE is not defined here under fai.
+src=$(dirname "$0")/p/c/machine_specific/$HOSTNAME/filesystem/etc/ssh
+dst=$target/etc/ssh
+if [[ -e $src && -e $dst ]]; then
+    # outside of fai context, we skip this
+    cp -rT $src $dst
+fi
+
 
-dir=/q/p/c/machine_specific/$HOSTNAME/.unison
+dir=/p/c/machine_specific/$HOSTNAME/.unison
 $ROOTCMD mkdir -p $dir
 if ! $ROOTCMD test -L /root/.unison; then
     $ROOTCMD rm -rf /root/.unison
     $ROOTCMD ln -s -T $dir /root/.unison
 fi
 
-$ROOTCMD ln -sf /q/p /
 $ROOTCMD chown -R 1000:1000 $dir
 while true; do
     $ROOTCMD chown 1000:1000 $dir
     $ROOTCMD chmod 700 $dir
     dir=$(dirname $dir)
-    [[ $dir != /q ]] || break
+    if [[ $dir == /p ]]; then break; fi
 done
+
+au -s /bin/false --home-dir /var/lib/bitcoind bitcoin