16306: Merge branch 'master'
[arvados.git] / tools / arvbox / lib / arvbox / docker / service / webshell / run
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 exec 2>&1
7 set -ex -o pipefail
8
9 . /usr/local/lib/arvbox/common.sh
10
11 /usr/local/lib/arvbox/runsu.sh $0-service
12
13 cat > /etc/pam.d/shellinabox <<EOF
14 # This example is a stock debian "login" file with pam_arvados
15 # replacing pam_unix. It can be installed as /etc/pam.d/shellinabox .
16
17 auth       optional   pam_faildelay.so  delay=3000000
18 auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so
19 auth       requisite  pam_nologin.so
20 session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
21 session       required   pam_env.so readenv=1
22 session       required   pam_env.so readenv=1 envfile=/etc/default/locale
23
24 auth [success=1 default=ignore] /usr/local/lib/pam_arvados.so $localip:${services[controller-ssl]} $localip
25 auth    requisite            pam_deny.so
26 auth    required            pam_permit.so
27
28 auth       optional   pam_group.so
29 session    required   pam_limits.so
30 session    optional   pam_lastlog.so
31 session    optional   pam_motd.so  motd=/run/motd.dynamic
32 session    optional   pam_motd.so
33 session    optional   pam_mail.so standard
34
35 @include common-account
36 @include common-session
37 @include common-password
38
39 session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
40 EOF
41
42 exec shellinaboxd --verbose --port ${services[webshell]} --user arvbox --group arvbox \
43                   --disable-ssl --no-beep --service=/$localip:AUTH:HOME:SHELL