flagflag  If you want to see English page, please click "English" Button at Left.
/usr/local/bin/start.sh (改) anchor.png
#!/bin/bash
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.

set -e

# Exec the specified command or fall back on bash
if [ $# -eq 0 ]; then
    cmd=( \\"bash\\" )
else
    cmd=( \\"$@\\" )
fi

run-hooks () {
    # Source scripts or run executable files in a directory
    if [[ ! -d \\"$1\\" ]] ; then
        return
    fi
    echo \\"$0: running hooks in $1\\"
    for f in \\"$1/\\"*; do
        case \\"$f\\" in
            *.sh)
                echo \\"$0: running $f\\"
                source \\"$f\\"
                ;;
            *)
                if [[ -x \\"$f\\" ]] ; then
                    echo \\"$0: running $f\\"
                    \\"$f\\"
                else
                    echo \\"$0: ignoring $f\\"
                fi
                ;;
        esac
    done
    echo \\"$0: done running hooks in $1\\"
}

run-hooks /usr/local/bin/start-notebook.d

# Handle special flags if we\\\'re root
if [ $(id -u) == 0 ] ; then

    #
    HOME_DIR=\\"/home\\"
    if [[ \\"$NB_GROUP\\" != \\"\\" ]]; then
        HOME_DIR=\\"$HOME_DIR/$NB_GROUP\\"
        if [[ ! -e \\"$HOME_DIR\\" ]]; then
            mkdir $HOME_DIR
        fi
    fi

    # Only attempt to change the jovyan username if it exists
    if id jovyan &> /dev/null ; then
        echo \\"Set username to: $NB_USER\\"
        usermod -d $HOME_DIR/$NB_USER -l $NB_USER jovyan
    fi

    # handle home and working directory if the username changed
    if [[ \\"$NB_USER\\" != \\"jovyan\\" ]]; then
        # changing username, make sure homedir exists
        # (it could be mounted, and we shouldn\\\'t create it if it already exists)
        if [[ ! -e \\"$HOME_DIR/$NB_USER\\" ]]; then
            echo \\"Relocating home dir to $HOME_DIR/$NB_USER\\"
            mv /home/jovyan \\"$HOME_DIR/$NB_USER\\" || ln -s /home/jovyan \\"$HOME_DIR/$NB_USER\\"
        else
            cd $HOME_DIR/$NB_USER
            rm -rf /home/jovyan || true
        fi
        # if workdir is in /home/jovyan, cd to $HOME_DIR/$NB_USER
        if [[ \\"$PWD/\\" == \\"/home/jovyan/\\"* ]]; then
            newcwd=\\"$HOME_DIR/$NB_USER/${PWD:13}\\"
            echo \\"Setting CWD to $newcwd\\"
            cd \\"$newcwd\\"
        fi
    fi

    CHOWN_HOME=1
    # Handle case where provisioned storage does not have the correct permissions by default
    # Ex: default NFS/EFS (no auto-uid/gid)
    if [[ \\"$CHOWN_HOME\\" == \\"1\\" || \\"$CHOWN_HOME\\" == \\\'yes\\\' ]]; then
        echo \\"Changing ownership of $HOME_DIR/$NB_USER to $NB_UID:$NB_GID with options \\\'${CHOWN_HOME_OPTS}\\\'\\"
        chown -R $CHOWN_HOME_OPTS $NB_UID:$NB_GID $HOME_DIR/$NB_USER
    fi
    if [ ! -z \\"$CHOWN_EXTRA\\" ]; then
        for extra_dir in $(echo $CHOWN_EXTRA | tr \\\',\\\' \\\' \\\'); do
            echo \\"Changing ownership of ${extra_dir} to $NB_UID:$NB_GID with options \\\'${CHOWN_EXTRA_OPTS}\\\'\\"
            chown -R $CHOWN_EXTRA_OPTS $NB_UID:$NB_GID $extra_dir
        done
    fi

    # Change UID:GID of NB_USER to NB_UID:NB_GID if it does not match
    if [ \\"$NB_UID\\" != $(id -u $NB_USER) ] || [ \\"$NB_GID\\" != $(id -g $NB_USER) ]; then
        echo \\"Set user $NB_USER UID:GID to: $NB_UID:$NB_GID\\"
        if [ \\"$NB_GID\\" != $(id -g $NB_USER) ]; then
            groupadd -f -g $NB_GID -o ${NB_GROUP:-${NB_USER}}
        fi
        userdel $NB_USER
        useradd --home $HOME_DIR/$NB_USER -u $NB_UID -g $NB_GID -G 100 -l $NB_USER
    fi

    # Enable sudo if requested
    if [[ \\"$GRANT_SUDO\\" == \\"1\\" || \\"$GRANT_SUDO\\" == \\\'yes\\\' ]]; then
        echo \\"Granting $NB_USER sudo access and appending $CONDA_DIR/bin to sudo PATH\\"
        echo \\"$NB_USER ALL=(ALL) NOPASSWD:ALL\\" > /etc/sudoers.d/notebook
    fi

    # Add $CONDA_DIR/bin to sudo secure_path
    sed -r \\"s#Defaults\\\\s+secure_path\\\\s*=\\\\s*\\\\\\"?([^\\\\\\"]+)\\\\\\"?#Defaults secure_path=\\\\\\"\\\\1:$CONDA_DIR/bin\\\\\\"#\\" /etc/sudoers | grep secure_path > /etc/sudoers.d/path

    # Exec the command as NB_USER with the PATH and the rest of
    # the environment preserved
    run-hooks /usr/local/bin/before-notebook.d
    echo \\"Executing the command: ${cmd[@]}\\"
    exec sudo -E -H -u $NB_USER PATH=$PATH XDG_CACHE_HOME=$HOME_DIR/$NB_USER/.cache PYTHONPATH=${PYTHONPATH:-} \\"${cmd[@]}\\"
else
    if [[ \\"$NB_UID\\" == \\"$(id -u jovyan 2>/dev/null)\\" && \\"$NB_GID\\" == \\"$(id -g jovyan 2>/dev/null)\\" ]]; then
        # User is not attempting to override user/group via environment
        # variables, but they could still have overridden the uid/gid that
        # container runs as. Check that the user has an entry in the passwd
        # file and if not add an entry.
        STATUS=0 && whoami &> /dev/null || STATUS=$? && true
        if [[ \\"$STATUS\\" != \\"0\\" ]]; then
            if [[ -w /etc/passwd ]]; then
                echo \\"Adding passwd file entry for $(id -u)\\"
                cat /etc/passwd | sed -e \\"s/^jovyan:/nayvoj:/\\" > /tmp/passwd
                echo \\"jovyan:x:$(id -u):$(id -g):,,,:/home/jovyan:/bin/bash\\" >> /tmp/passwd
                cat /tmp/passwd > /etc/passwd
                rm /tmp/passwd
            else
                echo \\\'Container must be run with group \\"root\\" to update passwd file\\\'
            fi
        fi

        # Warn if the user isn\\\'t going to be able to write files to $HOME.
        if [[ ! -w /home/jovyan ]]; then
            echo \\\'Container must be run with group \\"users\\" to update files\\\'
        fi
    else
        # Warn if looks like user want to override uid/gid but hasn\\\'t
        # run the container as root.
        if [[ ! -z \\"$NB_UID\\" && \\"$NB_UID\\" != \\"$(id -u)\\" ]]; then
            echo \\\'Container must be run as root to set $NB_UID\\\'
        fi
        if [[ ! -z \\"$NB_GID\\" && \\"$NB_GID\\" != \\"$(id -g)\\" ]]; then
            echo \\\'Container must be run as root to set $NB_GID\\\'
        fi
    fi

    # Warn if looks like user want to run in sudo mode but hasn\\\'t run
    # the container as root.
    if [[ \\"$GRANT_SUDO\\" == \\"1\\" || \\"$GRANT_SUDO\\" == \\\'yes\\\' ]]; then
        echo \\\'Container must be run as root to grant sudo permissions\\\'
    fi

    # Execute the command
    run-hooks /usr/local/bin/before-notebook.d
    echo \\"Executing the command: ${cmd[@]}\\"
    exec \\"${cmd[@]}\\"
fi

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 433, today: 1, yesterday: 0
最終更新: 2021-07-13 (火) 20:04:37 (JST) (1015d) by iseki

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
<今日>

オンライン状況

61 人のユーザが現在オンラインです。 (4 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 61

もっと...

アクセスカウンタ

今日 : 1915191519151915
昨日 : 6596659665966596
総計 : 2331941523319415233194152331941523319415233194152331941523319415
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com