refs #10524
[arvados.git] / tools / 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 \
11           /var/lib/passenger /var/lib/gopath /var/lib/pip
12
13     groupadd --gid $HOSTGID --non-unique arvbox
14     groupadd --gid $FUSEGID --non-unique fuse
15     groupadd --gid $HOSTGID --non-unique git
16     useradd --home-dir /var/lib/arvados \
17             --uid $HOSTUID --gid $HOSTGID \
18             --non-unique \
19             --groups docker,fuse \
20             arvbox
21     useradd --home-dir /var/lib/arvados/git --uid $HOSTUID --gid $HOSTGID --non-unique git
22     useradd --groups docker,fuse crunch
23
24     chown arvbox:arvbox -R /usr/local /var/lib/arvados /var/lib/gems \
25           /var/lib/passenger /var/lib/postgresql \
26           /var/lib/nginx /var/log/nginx /etc/ssl/private \
27           /var/lib/gopath /var/lib/pip
28
29     mkdir -p /var/lib/gems/ruby/2.1.0
30     chown arvbox:arvbox -R /var/lib/gems/ruby/2.1.0
31
32     mkdir -p /tmp/crunch0 /tmp/crunch1
33     chown crunch:crunch -R /tmp/crunch0 /tmp/crunch1
34
35     echo "arvbox    ALL=(crunch) NOPASSWD: ALL" >> /etc/sudoers
36 fi