Browse Source

Generate a random initial password for the image

Fixed default passwords should be avoided
Bob Mottram 9 years ago
parent
commit
0cb73cc095
1 changed files with 31 additions and 10 deletions
  1. 31
    10
      src/freedombone-image

+ 31
- 10
src/freedombone-image View File

37
 MAKEFILE=${PROJECT_NAME}-image-makefile
37
 MAKEFILE=${PROJECT_NAME}-image-makefile
38
 
38
 
39
 USERNAME=$(echo $USER)
39
 USERNAME=$(echo $USER)
40
-PASSWORD="${PROJECT_NAME}"
40
+PASSWORD=
41
 
41
 
42
 # IP address of the router (gateway)
42
 # IP address of the router (gateway)
43
 ROUTER_IP_ADDRESS="192.168.1.254"
43
 ROUTER_IP_ADDRESS="192.168.1.254"
52
 # An optional freedombone configuration file
52
 # An optional freedombone configuration file
53
 CONFIG_FILENAME=
53
 CONFIG_FILENAME=
54
 
54
 
55
+DEFAULT_DOMAIN_NAME="${PROJECT_NAME}.local"
56
+
55
 while [[ $# > 1 ]]
57
 while [[ $# > 1 ]]
56
 do
58
 do
57
 key="$1"
59
 key="$1"
63
     -c|--config)
65
     -c|--config)
64
     shift
66
     shift
65
     CONFIG_FILENAME="$1"
67
     CONFIG_FILENAME="$1"
68
+    if [ ! -f $CONFIG_FILENAME ]; then
69
+        echo "Config file $CONFIG_FILENAME not found"
70
+        exit 3
71
+    fi
72
+    DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
66
     ;;
73
     ;;
67
     -t|--target|--board)
74
     -t|--target|--board)
68
     shift
75
     shift
103
 shift
110
 shift
104
 done
111
 done
105
 
112
 
106
-
113
+if [ ! $PASSWORD ]; then
114
+    # generate a random password
115
+    PASSWORD="$(openssl rand -base64 10 | cut -c1-8)"
116
+fi
107
 
117
 
108
 rm $CURR_DIR/*.img.bz2
118
 rm $CURR_DIR/*.img.bz2
109
 rm $CURR_DIR/*.img
119
 rm $CURR_DIR/*.img
145
     BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
155
     BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
146
     NAMESERVER1="$NAMESERVER1" \
156
     NAMESERVER1="$NAMESERVER1" \
147
     NAMESERVER2="$NAMESERVER2" \
157
     NAMESERVER2="$NAMESERVER2" \
148
-	PROJECT_NAME="$PROJECT_NAME" \
149
-	CONFIG_FILENAME="$CONFIG_FILENAME"
158
+    PROJECT_NAME="$PROJECT_NAME" \
159
+    CONFIG_FILENAME="$CONFIG_FILENAME"
150
 
160
 
151
 shopt -s nullglob
161
 shopt -s nullglob
152
 imgfiles=(build/${PROJECT_NAME}*.img)
162
 imgfiles=(build/${PROJECT_NAME}*.img)
153
 if [ ${#imgfiles[@]} -eq 0 ]; then
163
 if [ ${#imgfiles[@]} -eq 0 ]; then
154
-	echo 'Image was not created'
155
-	rm -rf $BUILD_DIR
156
-	exit 1
164
+    echo 'Image was not created'
165
+    rm -rf $BUILD_DIR
166
+    exit 1
157
 fi
167
 fi
158
 
168
 
159
 mv build/${PROJECT_NAME}*.bz2 $CURR_DIR
169
 mv build/${PROJECT_NAME}*.bz2 $CURR_DIR
162
 rm -rf $BUILD_DIR
172
 rm -rf $BUILD_DIR
163
 
173
 
164
 clear
174
 clear
165
-echo '
166
-Image was created
167
-'
175
+echo "
176
+Image was created.
177
+
178
+You will be able to log into it with:
179
+
180
+    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p 2222
181
+
182
+    Password: $PASSWORD
183
+"
168
 ls -lh ${PROJECT_NAME}*.img ${PROJECT_NAME}*.sig ${PROJECT_NAME}*.bz2
184
 ls -lh ${PROJECT_NAME}*.img ${PROJECT_NAME}*.sig ${PROJECT_NAME}*.bz2
169
 
185
 
186
+# record the default login credentials for later use
187
+echo "Username: $USERNAME
188
+Password: $PASSWORD" > ${PROJECT_NAME}_login_credentials.txt
189
+chmod 600 ${PROJECT_NAME}_login_credentials.txt
190
+
170
 exit 0
191
 exit 0