Modification : vm_{host,hosted,remote} -> {host,local,remote}/ .
[lhc/ateliers.git] / local / user-configure
diff --git a/local/user-configure b/local/user-configure
new file mode 100755 (executable)
index 0000000..fc825f7
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/sh -eu
+# SYNTAX: $user
+tool=$(readlink -e "${0%/*}/..")
+. "$tool"/local/lib.sh
+
+"$tool"/local/apt-get-install bash-completion
+sudo install -m 660 -o root -g root \
+ "$tool"/etc/adduser.conf \
+        /etc/adduser.conf
+sudo install -d -m 750 -o root -g root \
+ /etc/skel \
+ /etc/skel/etc \
+ /etc/skel/etc/gpg \
+ /etc/skel/etc/ssh
+sudo install -d -m 770 -o root -g root \
+ /etc/skel/var \
+ /etc/skel/var/cache \
+ /etc/skel/var/log \
+ /etc/skel/var/run \
+ /etc/skel/var/run/ssh
+sudo ln -fns etc/ssh /etc/skel/.ssh
+sudo ln -fns etc/gpg /etc/skel/.gnupg
+sudo install -m 640 -o root -g root /dev/stdin \
+ /etc/sudoers.d/passwd-init <<-EOF
+       %sudo ALL=(ALL) NOPASSWD: /bin/sh -e -f -u -c \\
+         case \$(/usr/bin/passwd --status "\$SUDO_USER") in \\
+           ("\$SUDO_USER L "*) /usr/bin/passwd \$SUDO_USER;; esac
+       EOF
+sudo install -m 640 -o root -g root /dev/stdin \
+ /etc/sudoers.d/etckeeper-unclean <<-EOF
+       %sudo ALL=(ALL) NOPASSWD: /usr/bin/etckeeper unclean
+       EOF
+sudo install -m 640 -o root -g root /dev/stdin \
+ /etc/sudoers.d/env_keep <<-EOF
+       Defaults env_keep = " \\
+         EDITOR \\
+         GIT_AUTHOR_NAME \\
+         GIT_AUTHOR_EMAIL \\
+         GIT_COMMITTER_NAME \\
+         GIT_COMMITTER_EMAIL \\
+        "
+       EOF
+sudo install -m 755 -o root -g root \
+  "$tool"/local/passwd-init \
+ /usr/local/bin/passwd-init
+sudo install -m 644 -o root -g root \
+ "$tool"/etc/bash.bashrc \
+        /etc/bash.bashrc
+sudo install -m 644 -o root -g root \
+ "$tool"/etc/inputrc \
+        /etc/inputrc
+sudo install -m 644 -o root -g root \
+ "$tool"/etc/screenrc \
+        /etc/screenrc
+for sh in "$tool"/etc/user.d/*/local.sh
+ do sh=${sh#"$tool"/etc/user.d/}
+       user="${sh%/local.sh}"
+       (
+       . "$tool"/etc/user.d/"$sh" || return 1
+       )
+ done