Fix arvados-login-sync for vm account creation
[arvados.git] / 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 \
24           /var/lib/passenger /var/lib/postgresql \
25           /var/lib/nginx /var/log/nginx /etc/ssl/private
26
27     mkdir -p /var/lib/gems/ruby/2.1.0
28     chown arvbox:arvbox -R /var/lib/gems/ruby/2.1.0
29
30     mkdir -p /tmp/crunch0 /tmp/crunch1
31     chown crunch:crunch -R /tmp/crunch0 /tmp/crunch1
32
33     echo "arvbox    ALL=(crunch) NOPASSWD: ALL" >> /etc/sudoers
34 fi