chiark / gitweb /
ubuntu-daily: flip -a semantics to mean --authenticated, not --anonymous
[bin.git] / chroot-setup
1 #! /bin/sh -e
2
3 # Chroot preparation:
4 #   locale-gen en_GB.UTF-8
5 #   apt-get --no-install-recommends install keychain xauth x11-xserver-utils
6 #   adduser --disabled-password cjwatson
7 #   addgroup --system admin
8 #   adduser cjwatson admin
9 #   visudo # add '%admin ALL=NOPASSWD: ALL'
10
11 if [ -e "$1/proc/cmdline" ]; then exit; fi
12
13 ensure_dir_mine () {
14         sudo mkdir -p "$1"
15         sudo chown cjwatson:cjwatson "$1"
16 }
17
18 sudo mount --bind /proc "$1/proc"
19 sudo mount --bind /sys "$1/sys"
20 sudo mount --bind /dev "$1/dev"
21 sudo mount --bind /dev/pts "$1/dev/pts"
22 mkdir -p "$1/tmp/.X11-unix" "$1/tmp/.ICE-unix"
23 sudo mount --bind /tmp/.X11-unix "$1/tmp/.X11-unix"
24 sudo mount --bind /tmp/.ICE-unix "$1/tmp/.ICE-unix"
25 if [ "$SSH_AUTH_SOCK" ]; then
26         ensure_dir_mine "$1$(dirname "$SSH_AUTH_SOCK")"
27         sudo mount --bind "$(dirname "$SSH_AUTH_SOCK")" "$1$(dirname "$SSH_AUTH_SOCK")"
28 fi
29 if [ -d /home/cjwatson/.ssh/control ]; then
30         ensure_dir_mine "$1/home/cjwatson/.ssh"
31         ensure_dir_mine "$1/home/cjwatson/.ssh/control"
32         sudo mount --bind /home/cjwatson/.ssh/control "$1/home/cjwatson/.ssh/control"
33 fi
34 if [ "$GPG_AGENT_INFO" ]; then
35         ensure_dir_mine "$1$(dirname "$GPG_AGENT_INFO")"
36         sudo mount --bind "$(dirname "$GPG_AGENT_INFO")" "$1$(dirname "$GPG_AGENT_INFO")"
37 fi
38 if [ -d /home/cjwatson/.keychain ]; then
39         ensure_dir_mine "$1/home/cjwatson/.keychain"
40         sudo mount --bind /home/cjwatson/.keychain "$1/home/cjwatson/.keychain"
41 fi
42 xauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 xauth add' || true
43 rm -f "$1/home/cjwatson/.ICEauthority"
44 iceauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 iceauth add'
45 sudo cp -a /etc/resolv.conf "$1/etc/"
46 if [ -d /home/cjwatson/src ]; then
47         ensure_dir_mine "$1/home/cjwatson/src"
48         sudo mount --bind /home/cjwatson/src "$1/home/cjwatson/src"
49 fi