src=$(dirname "$0")/p/c/machine_specific/$HOSTNAME/filesystem/etc/ssh
dst=$target/etc/ssh
if [[ -e $src && -e $dst ]]; then
src=$(dirname "$0")/p/c/machine_specific/$HOSTNAME/filesystem/etc/ssh
dst=$target/etc/ssh
if [[ -e $src && -e $dst ]]; then
-TPW=/q/root/shadow/traci-simple
-if ifclass tp; then
- ROOTPW="$TPW"
-else
- ROOTPW=/q/root/shadow/standard
+USER2PW=/q/root/shadow/user2
+# if doesn't exist, we dont set one
+ROOTPW=/q/root/shadow/standard
+if [[ ! -e $ROOTPW ]]; then
+ ROOTPW=/q/root/shadow/$HOSTNAME
- # 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" >&2
- fi
+ # 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" >&2
+ fi
-au() { # add user
- if ! $ROOTCMD getent passwd ${@: -1}; then
- $ROOTCMD useradd -m -s /bin/bash $@
- fi
+au() { # add user. i don't use adduser for portability
+ if ! $ROOTCMD getent passwd ${@: -1}; then
+ $ROOTCMD useradd -Um -s /bin/bash $@
+ fi
-# comparing iank's groups to traci, I see none she should join on arch
-$ROOTCMD usermod -a -G traci iank
+# comparing iank's groups to user2, I see none she should join on arch
+$ROOTCMD usermod -a -G user2 iank
+
$ROOTCMD getent group docker &>/dev/null || $ROOTCMD groupadd -r docker
$ROOTCMD usermod -a -G docker iank
$ROOTCMD getent group docker &>/dev/null || $ROOTCMD groupadd -r docker
$ROOTCMD usermod -a -G docker iank
# based on unison error, with 8192 from
# sysctl -a | grep fs.inotify.max_user_watches
#http://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux
# based on unison error, with 8192 from
# sysctl -a | grep fs.inotify.max_user_watches
#http://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux
f=$target/etc/sysctl.d/99-sysctl.conf
key=fs.inotify.max_user_watches
if [[ -e $f ]]; then sed -ri --follow-symlinks "/^\s*$key\s*=/d" $f; fi
f=$target/etc/sysctl.d/99-sysctl.conf
key=fs.inotify.max_user_watches
if [[ -e $f ]]; then sed -ri --follow-symlinks "/^\s*$key\s*=/d" $f; fi
# applies it. it would be also be applied after a reboot
$ROOTCMD sysctl --system
f=$target/etc/sudoers
line='iank ALL=(ALL) NOPASSWD: ALL'
if [[ ! -e $f ]] || ! grep -xF "$line" $f; then
# applies it. it would be also be applied after a reboot
$ROOTCMD sysctl --system
f=$target/etc/sudoers
line='iank ALL=(ALL) NOPASSWD: ALL'
if [[ ! -e $f ]] || ! grep -xF "$line" $f; then