a4689f004aeebab31c71f0dbe35833ec99df7b89
[arvados.git] / tools / arvbox / lib / arvbox / docker / createusers.sh
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 set -e -o pipefail
7
8 if ! grep "^arvbox:" /etc/passwd >/dev/null 2>/dev/null ; then
9     HOSTUID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f4)
10     HOSTGID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f5)
11
12     mkdir -p /var/lib/arvados/git /var/lib/gems \
13           /var/lib/passenger /var/lib/gopath \
14           /var/lib/pip /var/lib/npm
15
16     groupadd --gid $HOSTGID --non-unique arvbox
17     groupadd --gid $HOSTGID --non-unique git
18     useradd --home-dir /var/lib/arvados \
19             --uid $HOSTUID --gid $HOSTGID \
20             --non-unique \
21             --groups docker \
22             --shell /bin/bash \
23             arvbox
24     useradd --home-dir /var/lib/arvados/git --uid $HOSTUID --gid $HOSTGID --non-unique git
25     useradd --groups docker crunch
26
27     chown arvbox:arvbox -R /usr/local /var/lib/arvados /var/lib/gems \
28           /var/lib/passenger /var/lib/postgresql \
29           /var/lib/nginx /var/log/nginx /etc/ssl/private \
30           /var/lib/gopath /var/lib/pip /var/lib/npm
31
32     mkdir -p /var/lib/gems/ruby
33     chown arvbox:arvbox -R /var/lib/gems/ruby
34
35     mkdir -p /tmp/crunch0 /tmp/crunch1
36     chown crunch:crunch -R /tmp/crunch0 /tmp/crunch1
37
38     echo "arvbox    ALL=(crunch) NOPASSWD: ALL" >> /etc/sudoers
39 fi
40
41 if ! grep "^fuse:" /etc/group >/dev/null 2>/dev/null ; then
42     if test -c /dev/fuse ; then
43         FUSEGID=$(ls -nd /dev/fuse | sed 's/ */ /' | cut -d' ' -f5)
44         groupadd --gid $FUSEGID --non-unique fuse
45         adduser arvbox fuse
46         adduser crunch fuse
47     fi
48 fi