1e6c95d15847f74f3a2a1031f369239e008fd4d6
[arvados-dev.git] / arvbox / lib / arvbox / docker / createusers.sh
1 #!/bin/bash
2
3 set -e -o pipefail
4
5 if ! grep "^arvbox:" /etc/passwd >/dev/null 2>/dev/null ; then
6     HOSTUID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f4)
7     HOSTGID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f5)
8     FUSEGID=$(ls -nd /dev/fuse | sed 's/ */ /' | cut -d' ' -f5)
9
10     mkdir -p /var/lib/arvados/git /var/lib/gems /var/lib/passenger
11
12     groupadd --gid $HOSTGID --non-unique arvbox
13     groupadd --gid $FUSEGID --non-unique fuse
14     groupadd --gid $HOSTGID --non-unique git
15     useradd --home-dir /var/lib/arvados \
16             --uid $HOSTUID --gid $HOSTGID \
17             --non-unique \
18             --groups docker,fuse \
19             arvbox
20     useradd --home-dir /var/lib/arvados/git --uid $HOSTUID --gid $HOSTGID --non-unique git
21     useradd --groups docker,fuse crunch
22
23     chown arvbox:arvbox -R /usr/local /var/lib/arvados /var/lib/gems /var/lib/passenger /var/lib/postgresql
24
25     mkdir -p /var/lib/gems/ruby/2.1.0
26     chown arvbox:arvbox -R /var/lib/gems/ruby/2.1.0
27
28     chown arvbox:arvbox -R /var/lib/nginx
29
30     # There's something weird about /var/log/nginx that prevents a non-root
31     # arvbox user from writing to it, even after the ownership has been
32     # changed.  As a workaround, delete it and recreate it.
33
34     rm -r /var/log/nginx
35     mkdir -p /var/log/nginx
36     chown arvbox:arvbox -R /var/log/nginx
37
38     mkdir -p /tmp/crunch0 /tmp/crunch1
39     chown crunch:crunch -R /tmp/crunch0 /tmp/crunch1
40
41     echo "arvbox    ALL=(crunch) NOPASSWD: ALL" >> /etc/sudoers
42 fi