瀏覽代碼

Generate a random initial password for the image

Fixed default passwords should be avoided
Bob Mottram 9 年之前
父節點
當前提交
0cb73cc095
共有 1 個檔案被更改,包括 31 行新增10 行删除
  1. 31
    10
      src/freedombone-image

+ 31
- 10
src/freedombone-image 查看文件

@@ -37,7 +37,7 @@ VMDEBOOTSTRAP_VERSION=0.8
37 37
 MAKEFILE=${PROJECT_NAME}-image-makefile
38 38
 
39 39
 USERNAME=$(echo $USER)
40
-PASSWORD="${PROJECT_NAME}"
40
+PASSWORD=
41 41
 
42 42
 # IP address of the router (gateway)
43 43
 ROUTER_IP_ADDRESS="192.168.1.254"
@@ -52,6 +52,8 @@ NAMESERVER2='85.214.20.141'
52 52
 # An optional freedombone configuration file
53 53
 CONFIG_FILENAME=
54 54
 
55
+DEFAULT_DOMAIN_NAME="${PROJECT_NAME}.local"
56
+
55 57
 while [[ $# > 1 ]]
56 58
 do
57 59
 key="$1"
@@ -63,6 +65,11 @@ case $key in
63 65
     -c|--config)
64 66
     shift
65 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 74
     -t|--target|--board)
68 75
     shift
@@ -103,7 +110,10 @@ esac
103 110
 shift
104 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 118
 rm $CURR_DIR/*.img.bz2
109 119
 rm $CURR_DIR/*.img
@@ -145,15 +155,15 @@ make $IMAGE_TYPE \
145 155
     BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
146 156
     NAMESERVER1="$NAMESERVER1" \
147 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 161
 shopt -s nullglob
152 162
 imgfiles=(build/${PROJECT_NAME}*.img)
153 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 167
 fi
158 168
 
159 169
 mv build/${PROJECT_NAME}*.bz2 $CURR_DIR
@@ -162,9 +172,20 @@ mv build/${PROJECT_NAME}*.sig $CURR_DIR
162 172
 rm -rf $BUILD_DIR
163 173
 
164 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 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 191
 exit 0