flagflag  
3: 2021-07-11 (Sun) 23:23:46 iseki source 4: 2021-07-13 (Tue) 11:24:06 iseki source
Line 1: Line 1:
-**** /usr/local/bin/start.sh (改) [#l51f1886]+**** /usr/local/bin/start.sh (改) [#t07ce283] 
 #!/bin/bash  #!/bin/bash
 # Copyright (c) Jupyter Development Team.  # Copyright (c) Jupyter Development Team.
Line 8: Line 9:
 # Exec the specified command or fall back on bash  # Exec the specified command or fall back on bash
 if [ $# -eq 0 ]; then  if [ $# -eq 0 ]; then
-     cmd=( "bash" )+     cmd=( \\"bash\\" )
 else  else
-     cmd=( "$@" )+     cmd=( \\"$@\\" )
 fi  fi
 run-hooks () {  run-hooks () {
     # Source scripts or run executable files in a directory      # Source scripts or run executable files in a directory
-     if [[ ! -d "$1" ]] ; then+     if [[ ! -d \\"$1\\" ]] ; then
         return          return
     fi      fi
-     echo "$0: running hooks in $1" +     echo \\"$0: running hooks in $1\\
-     for f in "$1/"*; do +     for f in \\"$1/\\"*; do 
-         case "$f" in+         case \\"$f\\" in
             *.sh)              *.sh)
-                 echo "$0: running $f" +                 echo \\"$0: running $f\\
-                 source "$f"+                 source \\"$f\\"
                 ;;                  ;;
             *)              *)
-                 if [[ -x "$f" ]] ; then +                 if [[ -x \\"$f\\" ]] ; then 
-                     echo "$0: running $f" +                     echo \\"$0: running $f\\
-                     "$f"+                     \\"$f\\"
                 else                  else
-                     echo "$0: ignoring $f"+                     echo \\"$0: ignoring $f\\"
                 fi                  fi
                 ;;                  ;;
         esac          esac
     done      done
-     echo "$0: done running hooks in $1"+     echo \\"$0: done running hooks in $1\\"
 }  }
 run-hooks /usr/local/bin/start-notebook.d  run-hooks /usr/local/bin/start-notebook.d
- # Handle special flags if we're root+ # Handle special flags if we\\\'re root
 if [ $(id -u) == 0 ] ; then  if [ $(id -u) == 0 ] ; then
     #      #
-     HOME_DIR="/home" +     HOME_DIR=\\"/home\\
-     if [[ "$NB_GROUP" != "" ]]; then +     if [[ \\"$NB_GROUP\\" != \\"\\" ]]; then 
-         HOME_DIR="$HOME_DIR/$NB_GROUP" +         HOME_DIR=\\"$HOME_DIR/$NB_GROUP\\
-         if [[ ! -e "$HOME_DIR" ]]; then+         if [[ ! -e \\"$HOME_DIR\\" ]]; then
             mkdir $HOME_DIR              mkdir $HOME_DIR
         fi          fi
Line 54: Line 55:
     # Only attempt to change the jovyan username if it exists      # Only attempt to change the jovyan username if it exists
     if id jovyan &> /dev/null ; then      if id jovyan &> /dev/null ; then
-         echo "Set username to: $NB_USER"+         echo \\"Set username to: $NB_USER\\"
         usermod -d $HOME_DIR/$NB_USER -l $NB_USER jovyan          usermod -d $HOME_DIR/$NB_USER -l $NB_USER jovyan
     fi      fi
     # handle home and working directory if the username changed      # handle home and working directory if the username changed
-     if [[ "$NB_USER" != "jovyan" ]]; then+     if [[ \\"$NB_USER\\" != \\"jovyan\\" ]]; then
         # changing username, make sure homedir exists          # changing username, make sure homedir exists
-         # (it could be mounted, and we shouldn't create it if it already exists) +         # (it could be mounted, and we shouldn\\\'t create it if it already exists) 
-         if [[ ! -e "$HOME_DIR/$NB_USER" ]]; then +         if [[ ! -e \\"$HOME_DIR/$NB_USER\\" ]]; then 
-             echo "Relocating home dir to $HOME_DIR/$NB_USER" +             echo \\"Relocating home dir to $HOME_DIR/$NB_USER\\
-             mv /home/jovyan "$HOME_DIR/$NB_USER" || ln -s /home/jovyan "$HOME_DIR/$NB_USER"+             mv /home/jovyan \\"$HOME_DIR/$NB_USER\\" || ln -s /home/jovyan \\"$HOME_DIR/$NB_USER\\"
         else          else
             cd $HOME_DIR/$NB_USER              cd $HOME_DIR/$NB_USER
 +             rm -rf /home/jovyan || true
         fi          fi
         # if workdir is in /home/jovyan, cd to $HOME_DIR/$NB_USER          # if workdir is in /home/jovyan, cd to $HOME_DIR/$NB_USER
-         if [[ "$PWD/" == "/home/jovyan/"* ]]; then +         if [[ \\"$PWD/\\" == \\"/home/jovyan/\\"* ]]; then 
-             newcwd="$HOME_DIR/$NB_USER/${PWD:13}" +             newcwd=\\"$HOME_DIR/$NB_USER/${PWD:13}\\
-             echo "Setting CWD to $newcwd" +             echo \\"Setting CWD to $newcwd\\
-             cd "$newcwd"+             cd \\"$newcwd\\"
         fi          fi
     fi      fi
Line 79: Line 81:
     # Handle case where provisioned storage does not have the correct permissions by default      # Handle case where provisioned storage does not have the correct permissions by default
     # Ex: default NFS/EFS (no auto-uid/gid)      # Ex: default NFS/EFS (no auto-uid/gid)
-     if [[ "$CHOWN_HOME" == "1" || "$CHOWN_HOME" == 'yes' ]]; then +     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}'"+         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          chown -R $CHOWN_HOME_OPTS $NB_UID:$NB_GID $HOME_DIR/$NB_USER
     fi      fi
-     if [ ! -z "$CHOWN_EXTRA" ]; then +     if [ ! -z \\"$CHOWN_EXTRA\\" ]; then 
-         for extra_dir in $(echo $CHOWN_EXTRA | tr ',' ' '); do +         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}'"+             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              chown -R $CHOWN_EXTRA_OPTS $NB_UID:$NB_GID $extra_dir
         done          done
Line 91: Line 93:
     # Change UID:GID of NB_USER to NB_UID:NB_GID if it does not match      # 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 +     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" +         echo \\"Set user $NB_USER UID:GID to: $NB_UID:$NB_GID\\
-         if [ "$NB_GID" != $(id -g $NB_USER) ]; then+         if [ \\"$NB_GID\\" != $(id -g $NB_USER) ]; then
             groupadd -f -g $NB_GID -o ${NB_GROUP:-${NB_USER}}              groupadd -f -g $NB_GID -o ${NB_GROUP:-${NB_USER}}
         fi          fi
Line 101: Line 103:
     # Enable sudo if requested      # Enable sudo if requested
-     if [[ "$GRANT_SUDO" == "1" || "$GRANT_SUDO" == 'yes' ]]; then +     if [[ \\"$GRANT_SUDO\\" == \\"1\\" || \\"$GRANT_SUDO\\" == \\\'yes\\\' ]]; then 
-         echo "Granting $NB_USER sudo access and appending $CONDA_DIR/bin to sudo PATH" +         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+         echo \\"$NB_USER ALL=(ALL) NOPASSWD:ALL\\" > /etc/sudoers.d/notebook
     fi      fi
     # Add $CONDA_DIR/bin to sudo secure_path      # 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+     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      # Exec the command as NB_USER with the PATH and the rest of
     # the environment preserved      # the environment preserved
     run-hooks /usr/local/bin/before-notebook.d      run-hooks /usr/local/bin/before-notebook.d
-     echo "Executing the command: ${cmd[@]}" +     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[@]}"+     exec sudo -E -H -u $NB_USER PATH=$PATH XDG_CACHE_HOME=$HOME_DIR/$NB_USER/.cache​ PYTHONPATH=${PYTHONPATH:-} \\"${cmd[@]}\\"
 else  else
-     if [[ "$NB_UID" == "$(id -u jovyan 2>/dev/null)" && "$NB_GID" == "$(id -g jovyan 2>/dev/null)" ]]; then+     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          # User is not attempting to override user/group via environment
         # variables, but they could still have overridden the uid/gid that          # variables, but they could still have overridden the uid/gid that
Line 121: Line 123:
         # file and if not add an entry.          # file and if not add an entry.
         STATUS=0 && whoami &> /dev/null || STATUS=$? && true          STATUS=0 && whoami &> /dev/null || STATUS=$? && true
-         if [[ "$STATUS" != "0" ]]; then+         if [[ \\"$STATUS\\" != \\"0\\" ]]; then
             if [[ -w /etc/passwd ]]; then              if [[ -w /etc/passwd ]]; then
-                 echo "Adding passwd file entry for $(id -u)" +                 echo \\"Adding passwd file entry for $(id -u)\\
-                 cat /etc/passwd | sed -e "s/^jovyan:/nayvoj:/" > /tmp/passwd +                 cat /etc/passwd | sed -e \\"s/^jovyan:/nayvoj:/\\" > /tmp/passwd 
-                 echo "jovyan:x:$(id -u):$(id -g):,,,:/home/jovyan:/bin/bash" >> /tmp/passwd+                 echo \\"jovyan:x:$(id -u):$(id -g):,,,:/home/jovyan:/bin/bash\\" >> /tmp/passwd
                 cat /tmp/passwd > /etc/passwd                  cat /tmp/passwd > /etc/passwd
                 rm /tmp/passwd                  rm /tmp/passwd
             else              else
-                 echo 'Container must be run with group "root" to update passwd file'+                 echo \\\'Container must be run with group \\"root\\" to update passwd file\\\'
             fi              fi
         fi          fi
-         # Warn if the user isn't going to be able to write files to $HOME.+         # Warn if the user isn\\\'t going to be able to write files to $HOME.
         if [[ ! -w /home/jovyan ]]; then          if [[ ! -w /home/jovyan ]]; then
-             echo 'Container must be run with group "users" to update files'+             echo \\\'Container must be run with group \\"users\\" to update files\\\'
         fi          fi
     else      else
-         # Warn if looks like user want to override uid/gid but hasn't+         # Warn if looks like user want to override uid/gid but hasn\\\'t
         # run the container as root.          # run the container as root.
-         if [[ ! -z "$NB_UID" && "$NB_UID" != "$(id -u)" ]]; then +         if [[ ! -z \\"$NB_UID\\" && \\"$NB_UID\\" != \\"$(id -u)\\" ]]; then 
-             echo 'Container must be run as root to set $NB_UID'+             echo \\\'Container must be run as root to set $NB_UID\\\'
         fi          fi
-         if [[ ! -z "$NB_GID" && "$NB_GID" != "$(id -g)" ]]; then +         if [[ ! -z \\"$NB_GID\\" && \\"$NB_GID\\" != \\"$(id -g)\\" ]]; then 
-             echo 'Container must be run as root to set $NB_GID'+             echo \\\'Container must be run as root to set $NB_GID\\\'
         fi          fi
     fi      fi
-     # Warn if looks like user want to run in sudo mode but hasn't run+     # Warn if looks like user want to run in sudo mode but hasn\\\'t run
     # the container as root.      # the container as root.
-     if [[ "$GRANT_SUDO" == "1" || "$GRANT_SUDO" == 'yes' ]]; then +     if [[ \\"$GRANT_SUDO\\" == \\"1\\" || \\"$GRANT_SUDO\\" == \\\'yes\\\' ]]; then 
-         echo 'Container must be run as root to grant sudo permissions'+         echo \\\'Container must be run as root to grant sudo permissions\\\'
     fi      fi
     # Execute the command      # Execute the command
     run-hooks /usr/local/bin/before-notebook.d      run-hooks /usr/local/bin/before-notebook.d
-     echo "Executing the command: ${cmd[@]}" +     echo \\"Executing the command: ${cmd[@]}\\
-     exec "${cmd[@]}"+     exec \\"${cmd[@]}\\"
 fi  fi


Front page   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthNov 2024Next Month
Su Mo Tu We Th Fr Sa
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
Today

Who's Online

18 user(s) are online (4 user(s) are browsing xpwiki)

Members: 0
Guests: 18

more...

Access Counter

Today : 855855855
Yesterday : 3646364636463646
Total : 2450678424506784245067842450678424506784245067842450678424506784
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com