#! /bin/sh -e # Chroot preparation: # locale-gen en_GB.UTF-8 # apt-get --no-install-recommends install keychain xauth x11-xserver-utils # adduser --disabled-password cjwatson # addgroup --system admin # adduser cjwatson admin # visudo # add '%admin ALL=NOPASSWD: ALL' if [ -e "$1/proc/cmdline" ]; then exit; fi ensure_dir_mine () { sudo mkdir -p "$1" sudo chown cjwatson:cjwatson "$1" } sudo mount --bind /proc "$1/proc" sudo mount --bind /sys "$1/sys" sudo mount --bind /dev "$1/dev" sudo mount --bind /dev/pts "$1/dev/pts" mkdir -p "$1/tmp/.X11-unix" "$1/tmp/.ICE-unix" sudo mount --bind /tmp/.X11-unix "$1/tmp/.X11-unix" sudo mount --bind /tmp/.ICE-unix "$1/tmp/.ICE-unix" if [ "$SSH_AUTH_SOCK" ]; then ensure_dir_mine "$1$(dirname "$SSH_AUTH_SOCK")" sudo mount --bind "$(dirname "$SSH_AUTH_SOCK")" "$1$(dirname "$SSH_AUTH_SOCK")" fi if [ -d /home/cjwatson/.ssh/control ]; then ensure_dir_mine "$1/home/cjwatson/.ssh" ensure_dir_mine "$1/home/cjwatson/.ssh/control" sudo mount --bind /home/cjwatson/.ssh/control "$1/home/cjwatson/.ssh/control" fi if [ "$GPG_AGENT_INFO" ]; then ensure_dir_mine "$1$(dirname "$GPG_AGENT_INFO")" sudo mount --bind "$(dirname "$GPG_AGENT_INFO")" "$1$(dirname "$GPG_AGENT_INFO")" fi if [ -d /home/cjwatson/.keychain ]; then ensure_dir_mine "$1/home/cjwatson/.keychain" sudo mount --bind /home/cjwatson/.keychain "$1/home/cjwatson/.keychain" fi xauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 xauth add' || true rm -f "$1/home/cjwatson/.ICEauthority" iceauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 iceauth add' sudo cp -a /etc/resolv.conf "$1/etc/" if [ -d /home/cjwatson/src ]; then ensure_dir_mine "$1/home/cjwatson/src" sudo mount --bind /home/cjwatson/src "$1/home/cjwatson/src" fi