浏览代码

Set the initial admin username

Bob Mottram 9 年前
父节点
当前提交
970e3dfca1
共有 1 个文件被更改,包括 52 次插入13 次删除
  1. 52
    13
      src/freedombone-config

+ 52
- 13
src/freedombone-config 查看文件

@@ -33,6 +33,9 @@ NO_OF_ARGS=$#
33 33
 
34 34
 PROJECT_NAME='freedombone'
35 35
 
36
+# username created by default within a debian image
37
+DEFAULT_IMAGE_USERNAME='fbone'
38
+
36 39
 export TEXTDOMAIN=${PROJECT_NAME}-config
37 40
 export TEXTDOMAINDIR="/usr/share/locale"
38 41
 
@@ -647,20 +650,56 @@ function interactive_configuration {
647 650
         fi
648 651
     fi
649 652
 
650
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" && $DEFAULT_DOMAIN_NAME && -d /home/$DEFAULT_DOMAIN_NAME ]]; then
651
-        MY_USERNAME=$DEFAULT_DOMAIN_NAME
653
+    if [ -d /home/$DEFAULT_IMAGE_USERNAME ]; then
654
+        # when installing from an image which comes with a known default user account
655
+        selected_username=
656
+        while [ ! $selected_username ]
657
+        do
658
+            if [ ! $selected_username ]; then
659
+                selected_username=$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')
660
+            fi
661
+            data=$(tempfile 2>/dev/null)
662
+            trap "rm -f $data" 0 1 2 5 15
663
+            dialog --backtitle $"Freedombone Configuration" \
664
+                   --title $"Username" \
665
+                   --inputbox $"Set your username for the system\n\nYour username should not contain any spaces" 12 60 "$selected_username" 2> $data
666
+            sel=$?
667
+            case $sel in
668
+                0) possible_username=$(cat $data)
669
+                   selected_username=
670
+                   if [[ $possible_username != *' '* && $possible_username != *'/'* && $possible_username != *'\'* && $possible_username != *'*'* ]]; then
671
+                       if [ $possible_username ]; then
672
+                           if [ ${#possible_username} -gt 1 ]; then
673
+                               if [[ $possible_username != $DEFAULT_IMAGE_USERNAME ]]; then
674
+                                   MY_USERNAME=$(cat $data)
675
+                                   usermod -l $MY_USERNAME $DEFAULT_IMAGE_USERNAME
676
+                                   usermod -d /home/$MY_USERNAME -m $MY_USERNAME
677
+                                   break
678
+                               fi
679
+                           fi
680
+                       fi
681
+                   fi
682
+                   ;;
683
+                1) exit 1;;
684
+                255) exit 1;;
685
+            esac
686
+        done
652 687
     else
653
-        data=$(tempfile 2>/dev/null)
654
-        trap "rm -f $data" 0 1 2 5 15
655
-        dialog --title $"Select the user account to install as" \
656
-               --backtitle $"Freedombone Configuration" \
657
-               --dselect "/home/$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 14 40 2> $data
658
-        sel=$?
659
-        case $sel in
660
-            0) MY_USERNAME=$(cat $data | awk -F '/' '{print $3}');;
661
-            1) exit 1;;
662
-            255) exit 1;;
663
-        esac
688
+        if [[ $SYSTEM_TYPE == "$VARIANT_MESH" && $DEFAULT_DOMAIN_NAME && -d /home/$DEFAULT_DOMAIN_NAME ]]; then
689
+            MY_USERNAME=$DEFAULT_DOMAIN_NAME
690
+        else
691
+            data=$(tempfile 2>/dev/null)
692
+            trap "rm -f $data" 0 1 2 5 15
693
+            dialog --title $"Select the user account to install as" \
694
+                   --backtitle $"Freedombone Configuration" \
695
+                   --dselect "/home/$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 14 40 2> $data
696
+            sel=$?
697
+            case $sel in
698
+                0) MY_USERNAME=$(cat $data | awk -F '/' '{print $3}');;
699
+                1) exit 1;;
700
+                255) exit 1;;
701
+            esac
702
+        fi
664 703
     fi
665 704
 
666 705
     if [ ! $MY_USERNAME ]; then