@@ -34,15 +34,18 @@ patch_lnd_conf()
3434
3535run_main ()
3636{
37- if [[ -z $2 ]]; then
38- echo " Usage: $( basename " $0 " ) [--skip-mkp224o ] /dev/sda2 /dev/sdb1 [/mnt/usd [/mnt/ssd]]"
37+ if [[ -z $2 ]] || [[ " $1 " == " --help " ]] ; then
38+ echo " Usage: $( basename " $0 " ) [options ] /dev/sda2 /dev/sdb1 [/mnt/usd [/mnt/ssd]]"
3939 echo " Where:"
4040 echo " /dev/sda2 - uSD card root partition (use '-' to not mount)"
4141 echo " /dev/sdb1 - SSD data partition (use '-' to not mount)"
4242 echo " /mnt/usd - uSD card mount point / directory"
4343 echo " /mnt/ssd - SSD mount point / directory"
4444 echo " Options:"
4545 echo " --skip-mkp224o - skip generating onion keys (requires them to be already present on SSD)"
46+ echo " --test-image - configure image for testing (allows ssh root access with password)"
47+ # FixMe: --update-update is temporary hack, remove after https://github.com/nakamochi/sysupdates/pull/8 is merged.
48+ echo " --update-update - update /sysupdates/update.sh on SSD from local copy"
4649 echo " Example: $( basename " $0 " ) /dev/sdc2 /dev/sdd1"
4750 exit 1
4851 fi
@@ -52,12 +55,29 @@ run_main()
5255 exit 1
5356 fi
5457
55- if [[ " $1 " == " --skip-mkp224o" ]]; then
56- shift
57- skip_mkp224o=1
58- else
59- skip_mkp224o=0
60- fi
58+ skip_mkp224o=0
59+ test_image=0
60+ update_update=0
61+ while [[ " $1 " == --* ]]; do
62+ case " $1 " in
63+ --skip-mkp224o)
64+ skip_mkp224o=1
65+ shift
66+ ;;
67+ --test-image)
68+ test_image=1
69+ shift
70+ ;;
71+ --update-update)
72+ update_update=1
73+ shift
74+ ;;
75+ * )
76+ echo " Error: unknown option $1 "
77+ exit 1
78+ ;;
79+ esac
80+ done
6181
6282 if [[ " $skip_mkp224o " -eq 0 ]]; then
6383 if ! check_exists mkp224o; then
@@ -240,6 +260,33 @@ run_main()
240260 chown -R " $lnd_user_group " " $SSD_MOUNT_POINT " /lnd
241261 echo " done."
242262
263+ # finalize image for testing or production
264+ if [[ " $test_image " -eq 1 ]]; then
265+ echo -n " Finalizing image for testing ... "
266+ sed -i " s/^#?PermitRootLogin.*/PermitRootLogin yes/" " $USD_MOUNT_POINT " /etc/ssh/sshd_config
267+ sed -i " s/^#?PasswordAuthentication.*/PasswordAuthentication yes/" " $USD_MOUNT_POINT " /etc/ssh/sshd_config
268+ root_pass=" nakamochi"
269+ crypted_root_pass=" $( mkpasswd " $root_pass " ) "
270+ sed -i " s/^root:[^:]*:/root:$crypted_root_pass :/" " $USD_MOUNT_POINT " /etc/shadow
271+ echo " done."
272+ echo " Test image root password is $root_pass , ssh root login allowed."
273+ else
274+ echo -n " Finalizing image for production ... "
275+ sed -i " s/^#?PermitRootLogin.*/PermitRootLogin no/" " $USD_MOUNT_POINT " /etc/ssh/sshd_config
276+ sed -i " s/^#?PasswordAuthentication.*/PasswordAuthentication no/" " $USD_MOUNT_POINT " /etc/ssh/sshd_config
277+ crypted_root_pass=" $( mkpasswd " $( tr -dc ' A-Za-z0-9' < /dev/urandom | head -c 13; echo) " ) "
278+ sed -i " s/^root:[^:]*:/root:$crypted_root_pass :/" " $USD_MOUNT_POINT " /etc/shadow
279+ echo " done."
280+ fi
281+
282+ if [[ " $update_update " -eq 1 ]]; then
283+ # update /sysupdates/update.sh on SSD from local copy
284+ echo -n " Updating /sysupdates/update.sh on SSD ... "
285+ cp " $( dirname " $0 " ) /update.sh" " $SSD_MOUNT_POINT " /sysupdates/update.sh
286+ chmod +x " $SSD_MOUNT_POINT " /sysupdates/update.sh
287+ echo " done."
288+ fi
289+
243290 sync
244291 echo " All DONE, Nakamochi uSD and SSD should be ready!"
245292}
0 commit comments