add support for creation of user/groups
This commit is contained in:
		
							parent
							
								
									289592cbf6
								
							
						
					
					
						commit
						379876f4f6
					
				
					 2 changed files with 43 additions and 0 deletions
				
			
		|  | @ -2,6 +2,7 @@ | |||
| 
 | ||||
| * Debian slim based image | ||||
| * OpenSSH server | ||||
| * User/group creation on startup | ||||
| 
 | ||||
| # Supported tags and respective `Dockerfile` links | ||||
| 
 | ||||
|  | @ -14,6 +15,9 @@ | |||
| | Key | Format | Description | | ||||
| | --- | --- | --- | | ||||
| | `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` | | ||||
| | `USERADD` | `{username}:{uid}:{gid};...` | Create user account(s) on startup | | ||||
| | `GROUPADD` | `{groupname}:{gid};...` | Create group account(s) on startup | | ||||
| | `BASE_DIR` | `/home` | Basedir used for user account creation (Default: `/home`) | | ||||
| 
 | ||||
| ## docker run | ||||
| 
 | ||||
|  | @ -22,6 +26,8 @@ $ docker run -it \ | |||
|     --name jumpbox \ | ||||
|     -v $(pwd)/jumpbox:/var/lib/jumpbox \ | ||||
|     -e "ROOT_AUTHORIZED_KEYS=/var/lib/jumpbox/authorized_keys" | ||||
|     -e "USERADD=jumpbox:1000:1000" | ||||
|     -e "GROUPADD=jumpbox:1000" | ||||
|     -p 1022:22 \ | ||||
|     pommib/jumpbox:latest | ||||
| ``` | ||||
|  | @ -41,4 +47,6 @@ services: | |||
|       - '${PWD}/jumpbox:/var/lib/jumpbox' | ||||
|     environment: | ||||
|       ROOT_AUTHORIZED_KEYS: /var/lib/jumpbox/authorized_keys | ||||
|       USERADD: jumpbox:1000:1000 | ||||
|       GROUPADD: jumpbox:1000 | ||||
| ``` | ||||
|  |  | |||
							
								
								
									
										35
									
								
								start.sh
									
										
									
									
									
								
							
							
						
						
									
										35
									
								
								start.sh
									
										
									
									
									
								
							|  | @ -1,5 +1,7 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| set -ex | ||||
| 
 | ||||
| mkdir -p /run/sshd | ||||
| 
 | ||||
| if [ -n "$ROOT_AUTHORIZED_KEYS" ]; then | ||||
|  | @ -10,4 +12,37 @@ if [ -n "$ROOT_AUTHORIZED_KEYS" ]; then | |||
|     fi | ||||
| fi | ||||
| 
 | ||||
| if [ -z "$BASE_DIR" ]; then | ||||
|     BASE_DIR="/home" | ||||
| fi | ||||
| 
 | ||||
| if [ ! -d "$BASE_DIR" ]; then | ||||
|     echo "BASE_DIR $BASE_DIR does not exist, creating..." | ||||
|     mkdir -p $BASE_DIR | ||||
| fi | ||||
| 
 | ||||
| # GROUPADD="group1:1000;group2:1001;group3:1002" | ||||
| while [ "$GROUPADD" != "$i" ] ;do | ||||
|     i=${GROUPADD%%;*} | ||||
|     GROUPADD="${GROUPADD#$i;}" | ||||
| 
 | ||||
|     GROUP_NAME=${i%%:*} | ||||
|     GROUP_GID="${i#$GROUP_NAME:}" | ||||
| 
 | ||||
|     groupadd --gid "$GROUP_GID" "$GROUP_NAME" | ||||
| done | ||||
| 
 | ||||
| # USERADD="user1:1000:1000;user2:1001:1000;user3:1002:1002" | ||||
| while [ "$USERADD" != "$i" ] ;do | ||||
|     i=${USERADD%%;*} | ||||
|     USERADD="${USERADD#$i;}" | ||||
| 
 | ||||
|     USER_NAME=${i%%:*} | ||||
|     UID_GID="${i#$USER_NAME:}" | ||||
|     USER_UID="${UID_GID%%:*}" | ||||
|     USER_GID="${UID_GID#$USER_UID:}" | ||||
| 
 | ||||
|     useradd --home-dir "$BASE_DIR/$USER_NAME" --uid "$USER_UID" --gid "$USER_GID" "$USER_NAME" | ||||
| done | ||||
| 
 | ||||
| exec /usr/sbin/sshd -D -e | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue