X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fdistro-install-common%2Fend;h=b55295232e614959ff7daf2ba16c302fe9c086ab;hb=c8bd51084bc4d90b9653d521e7cb05e17e417d97;hp=9c194fa19cc3cf90ee9889bd69809e6fee18e888;hpb=4c0b3d508093cd1561f6ae887f154f06383b67d3;p=automated-distro-installer diff --git a/fai/config/distro-install-common/end b/fai/config/distro-install-common/end index 9c194fa..b552952 100755 --- a/fai/config/distro-install-common/end +++ b/fai/config/distro-install-common/end @@ -3,7 +3,60 @@ set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR +if [[ $EUID != 0 ]]; then + echo "$0: error: expected to be root." + exit 1 +fi + +### begin set hostname +echo $hostname > /etc/hostname +sed -i '/^127\.0\.1\.1/d' /etc/hosts +echo "127.0.1.1 $hostname" >> /etc/hosts +hostname -F /etc/hostname +### end set hostname + +TPW=/q/root/shadow/traci-simple +if ifclass tp; then + ROOTPW="$TPW" +else + ROOTPW=/q/root/shadow/standard +fi + +chpw() { + # generating a hashed password: + # under debian, you can do + # mkpasswd -m sha-512 -s >/q/root/shadow/standard + # On arch, best seems to be copy your shadow file to a temp location, + # then passwd, get out the new pass, then copy the shadow file back. + user=$1 + pwfile=$2 + if [[ $pwfile && -e $pwfile ]]; then + printf "$user:" | cat - "$pwfile" | $ROOTCMD chpasswd -e + else + echo "$0: warning: no pw set for $user" + fi +} +au() { + if ! $ROOTCMD getent passwd $1; then + $ROOTCMD useradd -m $1 -s /bin/bash || [[ $? == 9 ]] + fi +} + +echo "IANNNNNNN 222222222, $ROOTPW" +ls -la $ROOTPW + +chpw root "$ROOTPW" +# 9 = user already exists. so we are idempotent. +au ian +chpw ian "$ROOTPW" + +au traci +if ifclass frodo; then + chpw traci "$TPW" +fi +# comparing ian's groups to traci, I see none she should join on arch +$ROOTCMD usermod -a -G traci ian # based on unison error, with 8192 from @@ -14,8 +67,8 @@ f=$target/etc/sysctl.d/99-sysctl.conf key=fs.inotify.max_user_watches if [[ -e $f ]]; then sed -ri "/^\s*$key\s*=/d" $f; fi echo "fs.inotify.max_user_watches = 1000000" >> $f -# if we weren't rebooting, you could apply it now with: -# sysctl --system +# applies it. it would be also be applied after a reboot +$ROOTCMD sysctl --system f=$target/etc/sudoers line='ian ALL=(ALL) NOPASSWD: ALL' @@ -31,10 +84,10 @@ $ROOTCMD rm -rf /root/.unison $ROOTCMD ln -sf $dir /root $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 done -