feat: support configuring a shell for a user
This commit is contained in:
		
							parent
							
								
									aeee18b935
								
							
						
					
					
						commit
						699498fe2c
					
				
					 2 changed files with 15 additions and 8 deletions
				
			
		|  | @ -16,7 +16,7 @@ | ||||||
| | --- | --- | --- | | | --- | --- | --- | | ||||||
| | `ROOT_AUTHORIZED_KEYS` | `/path/to/file` | Path to file that contains the public SSH keys that can be used for root user authentication. This file will be copied to `/root/.ssh/authorized_keys` | | | `ROOT_AUTHORIZED_KEYS` | `/path/to/file` | Path to file that contains the public SSH keys that can be used for root user authentication. This file will be copied to `/root/.ssh/authorized_keys` | | ||||||
| | `HOSTKEYS` | `/path/to/hostkey;...` | Specifies a (semi-colon separated list of) file(s) containing a private host key used by SSH. | | | `HOSTKEYS` | `/path/to/hostkey;...` | Specifies a (semi-colon separated list of) file(s) containing a private host key used by SSH. | | ||||||
| | `USERADD` | `{username}:{uid}:{gid};...` | Create user account(s) on startup | | | `USERADD` | `{username}:{uid}:{gid}:{shell};...` | Create user account(s) on startup | | ||||||
| | `GROUPADD` | `{groupname}:{gid};...` | Create group account(s) on startup | | | `GROUPADD` | `{groupname}:{gid};...` | Create group account(s) on startup | | ||||||
| | `BASE_DIR` | `/home` | Basedir used for user account creation (Default: `/home`) | | | `BASE_DIR` | `/home` | Basedir used for user account creation (Default: `/home`) | | ||||||
| 
 | 
 | ||||||
|  | @ -28,7 +28,7 @@ $ docker run -it \ | ||||||
|     -v $(pwd)/jumpbox:/var/lib/jumpbox \ |     -v $(pwd)/jumpbox:/var/lib/jumpbox \ | ||||||
|     -e "ROOT_AUTHORIZED_KEYS=/var/lib/jumpbox/authorized_keys" |     -e "ROOT_AUTHORIZED_KEYS=/var/lib/jumpbox/authorized_keys" | ||||||
|     -e "HOSTKEYS=/var/lib/jumpbox/ssh_host_ed25519_key;/var/lib/jumpbox/ssh_host_rsa_key" |     -e "HOSTKEYS=/var/lib/jumpbox/ssh_host_ed25519_key;/var/lib/jumpbox/ssh_host_rsa_key" | ||||||
|     -e "USERADD=jumpbox:1000:1000" |     -e "USERADD=jumpbox:1000:1000:/bin/bash" | ||||||
|     -e "GROUPADD=jumpbox:1000" |     -e "GROUPADD=jumpbox:1000" | ||||||
|     -p 1022:22 \ |     -p 1022:22 \ | ||||||
|     pommib/jumpbox:latest |     pommib/jumpbox:latest | ||||||
|  | @ -50,6 +50,6 @@ services: | ||||||
|     environment: |     environment: | ||||||
|       ROOT_AUTHORIZED_KEYS: /var/lib/jumpbox/authorized_keys |       ROOT_AUTHORIZED_KEYS: /var/lib/jumpbox/authorized_keys | ||||||
|       HOSTKEYS: /var/lib/jumpbox/ssh_host_ed25519_key;/var/lib/jumpbox/ssh_host_rsa_key |       HOSTKEYS: /var/lib/jumpbox/ssh_host_ed25519_key;/var/lib/jumpbox/ssh_host_rsa_key | ||||||
|       USERADD: jumpbox:1000:1000 |       USERADD: jumpbox:1000:1000:/bin/bash | ||||||
|       GROUPADD: jumpbox:1000 |       GROUPADD: jumpbox:1000 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								start.sh
									
										
									
									
									
								
							
							
						
						
									
										17
									
								
								start.sh
									
										
									
									
									
								
							|  | @ -22,6 +22,7 @@ if [ ! -d "$BASE_DIR" ]; then | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # GROUPADD="group1:1000;group2:1001;group3:1002" | # GROUPADD="group1:1000;group2:1001;group3:1002" | ||||||
|  | i="" | ||||||
| while [ "$GROUPADD" != "$i" ] ;do | while [ "$GROUPADD" != "$i" ] ;do | ||||||
|     i=${GROUPADD%%;*} |     i=${GROUPADD%%;*} | ||||||
|     GROUPADD="${GROUPADD#$i;}" |     GROUPADD="${GROUPADD#$i;}" | ||||||
|  | @ -32,20 +33,26 @@ while [ "$GROUPADD" != "$i" ] ;do | ||||||
|     groupadd --gid "$GROUP_GID" "$GROUP_NAME" |     groupadd --gid "$GROUP_GID" "$GROUP_NAME" | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
| # USERADD="user1:1000:1000;user2:1001:1000;user3:1002:1002" | # USERADD="user1:1000:1000:/bin/bash;user2:1001:1000:/bin/sh;user3:1002:1002:/bin/sh" | ||||||
|  | i="" | ||||||
|  | j="" | ||||||
| while [ "$USERADD" != "$i" ] ;do | while [ "$USERADD" != "$i" ] ;do | ||||||
|     i=${USERADD%%;*} |     i=${USERADD%%;*} | ||||||
|     USERADD="${USERADD#$i;}" |     USERADD="${USERADD#$i;}" | ||||||
| 
 | 
 | ||||||
|     USER_NAME=${i%%:*} |     USER_NAME=${i%%:*} | ||||||
|     UID_GID="${i#$USER_NAME:}" |     j="${i#$USER_NAME:}" | ||||||
|     USER_UID="${UID_GID%%:*}" |     USER_UID="${j%%:*}" | ||||||
|     USER_GID="${UID_GID#$USER_UID:}" |     j="${j#$USER_UID:}" | ||||||
|  |     USER_GID="${j%%:*}" | ||||||
|  |     j="${j#$USER_GID:}" | ||||||
|  |     USER_SHELL=$j | ||||||
| 
 | 
 | ||||||
|     useradd --home-dir "$BASE_DIR/$USER_NAME" --uid "$USER_UID" --gid "$USER_GID" "$USER_NAME" |     useradd --home-dir "$BASE_DIR/$USER_NAME" --shell "$USER_SHELL" --uid "$USER_UID" --gid "$USER_GID" "$USER_NAME" | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
| # HOSTKEYS="/var/lib/jumpbox/ssh_host_ed25519_key;/var/lib/jumpbox/ssh_host_rsa_key" | # HOSTKEYS="/var/lib/jumpbox/ssh_host_ed25519_key;/var/lib/jumpbox/ssh_host_rsa_key" | ||||||
|  | i="" | ||||||
| if [ -n "$HOSTKEYS" ]; then | if [ -n "$HOSTKEYS" ]; then | ||||||
|     while [ "$HOSTKEYS" != "$i" ]; do |     while [ "$HOSTKEYS" != "$i" ]; do | ||||||
|         i=${HOSTKEYS%%;*} |         i=${HOSTKEYS%%;*} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue