From c80d5bd5718c2d56bd8498ffae9b766f5a07f9c7 Mon Sep 17 00:00:00 2001
From: songmingliang <songmingliang@uniontech.com>
Date: Fri, 13 May 2022 18:11:36 +0800
Subject: [PATCH] modify password policy

---
 tool/pwd_conf_update.c | 154 +++++++++++++++++++++--------------------
 1 file changed, 78 insertions(+), 76 deletions(-)

diff --git a/tool/pwd_conf_update.c b/tool/pwd_conf_update.c
index ddcb130..3f90ee6 100644
--- a/tool/pwd_conf_update.c
+++ b/tool/pwd_conf_update.c
@@ -85,15 +85,15 @@ const _default_conf default_conf[] = {
         [OS_EULER] =
                 {
                         .min_length = 8,
-                        .max_length = 510,
+                        .max_length = 511,
                         .validate_policy = "1234567890;abcdefghijklmnopqrstuvwxyz;"
                                            "ABCDEFGHIJKLMNOPQRSTUVWXYZ;!\"#$%&'()*+,-./"
-                                           ":;<=>?@[\\]^_`{|}~/",
+                                           ":;<=>?@[\\]^_`{|}~",
                         .validate_required = 3,
                         .palindorme_num = 4,
                         .word_check = 1,
-                        .monotone_same_character_num = 3,
-                        .consecutive_same_character_num = 3,
+                        .monotone_same_character_num = 0,
+                        .consecutive_same_character_num = 0,
                         .first_letter_uppercase = 0,
                 },
 };
@@ -247,15 +247,15 @@ int update_conf(OS_TYPE os_type) {
     } else {
         // 如果找到了该字段
         // 如果是服务器版，强制覆盖配置
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset, "STRONG_PASSWORD = %s\n", "true");
-        //     DEBUG("restore STRONG_PASSWORD");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset, "STRONG_PASSWORD = %s\n", "true");
+             DEBUG("restore STRONG_PASSWORD");
+        } else {
         // 如果不是服务器版，则维持原配置
         sprintf(append_string + offset,
                 "STRONG_PASSWORD = %s\n",
                 iniparser_getboolean(dic, "Password:STRONG_PASSWORD", false) ? "true" : "false");
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -265,18 +265,18 @@ int update_conf(OS_TYPE os_type) {
                 default_conf[os_type].min_length);
         DEBUG("set PASSWORD_MIN_LENGTH");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset,
-        //             "PASSWORD_MIN_LENGTH = %d\n",
-        //             default_conf[os_type].min_length);
-        //     DEBUG("restore PASSWORD_MIN_LENGTH");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset,
+                     "PASSWORD_MIN_LENGTH = %d\n",
+                     default_conf[os_type].min_length);
+             DEBUG("restore PASSWORD_MIN_LENGTH");
+        } else {
         sprintf(append_string + offset,
                 "PASSWORD_MIN_LENGTH = %d\n",
                 iniparser_getint(dic,
                                  "Password:PASSWORD_MIN_LENGTH",
                                  default_conf[os_type].min_length));
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -286,38 +286,40 @@ int update_conf(OS_TYPE os_type) {
                 default_conf[os_type].max_length);
         DEBUG("set PASSWORD_MAX_LENGTH");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset,
-        //             "PASSWORD_MAX_LENGTH = %d\n",
-        //             default_conf[os_type].max_length);
-        //     DEBUG("restore PASSWORD_MAX_LENGTH");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset,
+                     "PASSWORD_MAX_LENGTH = %d\n",
+                     default_conf[os_type].max_length);
+             DEBUG("restore PASSWORD_MAX_LENGTH");
+        } else {
         sprintf(append_string + offset,
                 "PASSWORD_MAX_LENGTH = %d\n",
                 iniparser_getint(dic,
                                  "Password:PASSWORD_MAX_LENGTH",
                                  default_conf[os_type].max_length));
-        // }
+        }
     }
     offset = strlen(append_string);
 
     if (iniparser_find_entry(dic, "Password:VALIDATE_POLICY") == 0) {
         sprintf(append_string + offset,
-                "VALIDATE_POLICY = \"%s\"\n",
+                "VALIDATE_POLICY = %s \n",
                 default_conf[os_type].validate_policy);
         DEBUG("set VALIDATE_POLICY");
     } else {
         // char cmd[512];
         // sprintf(cmd, "sed \"/^VALIDATE_POLICY.*/\"d -i %s", PASSWD_CONF_FILE_PATH);
         // system(cmd);
-        // sprintf(append_string + offset,
-        //         "VALIDATE_POLICY = \"%s\"\n",
-        //         default_conf[os_type].validate_policy);
-        // DEBUG("set VALIDATE_POLICY after delete");
-
-        char buff[512];
-        get_validate_policy(buff);
-        sprintf(append_string + offset, "VALIDATE_POLICY = %s\n", buff);
+        if (OS_EULER == os_type) {
+		 sprintf(append_string + offset,
+                 "VALIDATE_POLICY = %s \n",
+                 default_conf[os_type].validate_policy);
+        	DEBUG("set VALIDATE_POLICY after delete");
+        } else {
+        	char buff[512];
+        	get_validate_policy(buff);
+        	sprintf(append_string + offset, "VALIDATE_POLICY = %s\n", buff);
+	}
     }
     offset = strlen(append_string);
 
@@ -327,18 +329,18 @@ int update_conf(OS_TYPE os_type) {
                 default_conf[os_type].validate_required);
         DEBUG("set VALIDATE_REQUIRED");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset,
-        //             "VALIDATE_REQUIRED = %d\n",
-        //             default_conf[os_type].validate_required);
-        //     DEBUG("restore VALIDATE_REQUIRED");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset,
+                     "VALIDATE_REQUIRED = %d\n",
+                     default_conf[os_type].validate_required);
+             DEBUG("restore VALIDATE_REQUIRED");
+        } else {
         sprintf(append_string + offset,
                 "VALIDATE_REQUIRED = %d\n",
                 iniparser_getint(dic,
                                  "Password:VALIDATE_REQUIRED",
                                  default_conf[os_type].validate_required));
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -348,18 +350,18 @@ int update_conf(OS_TYPE os_type) {
                 default_conf[os_type].palindorme_num);
         DEBUG("set PALINDROME_NUM");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset,
-        //             "PALINDROME_NUM = %d\n",
-        //             default_conf[os_type].palindorme_num);
-        //     DEBUG("restore PALINDROME_NUM");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset,
+                     "PALINDROME_NUM = %d\n",
+                     default_conf[os_type].palindorme_num);
+             DEBUG("restore PALINDROME_NUM");
+        } else {
         sprintf(append_string + offset,
                 "PALINDROME_NUM = %d\n",
                 iniparser_getint(dic,
                                  "Password:PALINDROME_NUM",
                                  default_conf[os_type].palindorme_num));
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -367,14 +369,14 @@ int update_conf(OS_TYPE os_type) {
         sprintf(append_string + offset, "WORD_CHECK = %d\n", default_conf[os_type].word_check);
         DEBUG("set WORD_CHECK");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset, "WORD_CHECK = %d\n",
-        //     default_conf[os_type].word_check); DEBUG("restore WORD_CHECK");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset, "WORD_CHECK = %d\n",
+             default_conf[os_type].word_check); DEBUG("restore WORD_CHECK");
+        } else {
         sprintf(append_string + offset,
                 "WORD_CHECK = %d\n",
                 iniparser_getint(dic, "Password:WORD_CHECK", default_conf[os_type].word_check));
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -384,18 +386,18 @@ int update_conf(OS_TYPE os_type) {
                 default_conf[os_type].monotone_same_character_num);
         DEBUG("set MONOTONE_CHARACTER_NUM");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset,
-        //             "MONOTONE_CHARACTER_NUM = %d\n",
-        //             default_conf[os_type].monotone_same_character_num);
-        //     DEBUG("restore MONOTONE_CHARACTER_NUM");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset,
+                     "MONOTONE_CHARACTER_NUM = %d\n",
+                     default_conf[os_type].monotone_same_character_num);
+             DEBUG("restore MONOTONE_CHARACTER_NUM");
+        } else {
         sprintf(append_string + offset,
                 "MONOTONE_CHARACTER_NUM = %d\n",
                 iniparser_getint(dic,
                                  "Password:MONOTONE_CHARACTER_NUM",
                                  default_conf[os_type].monotone_same_character_num));
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -405,18 +407,18 @@ int update_conf(OS_TYPE os_type) {
                 default_conf[os_type].consecutive_same_character_num);
         DEBUG("set CONSECUTIVE_SAME_CHARACTER_NUM");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset,
-        //             "CONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
-        //             default_conf[os_type].consecutive_same_character_num);
-        //     DEBUG("restore CONSECUTIVE_SAME_CHARACTER_NUM");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset,
+                     "CONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
+                     default_conf[os_type].consecutive_same_character_num);
+             DEBUG("restore CONSECUTIVE_SAME_CHARACTER_NUM");
+        } else {
         sprintf(append_string + offset,
                 "CONSECUTIVE_SAME_CHARACTER_NUM = %d\n",
                 iniparser_getint(dic,
                                  "Password:CONSECUTIVE_SAME_CHARACTER_NUM",
                                  default_conf[os_type].consecutive_same_character_num));
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -424,14 +426,14 @@ int update_conf(OS_TYPE os_type) {
         sprintf(append_string + offset, "DICT_PATH = %s\n", "");
         DEBUG("set DICT_PATH");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset, "DICT_PATH = %s\n", "");
-        //     DEBUG("restore DICT_PATH");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset, "DICT_PATH = %s\n", "");
+             DEBUG("restore DICT_PATH");
+        } else {
         sprintf(append_string + offset,
                 "DICT_PATH = %s\n",
                 iniparser_getstring(dic, "Password:DICT_PATH", ""));
-        // }
+        }
     }
     offset = strlen(append_string);
 
@@ -439,15 +441,15 @@ int update_conf(OS_TYPE os_type) {
         sprintf(append_string + offset, "FIRST_LETTER_UPPERCASE = %s\n", "false");
         DEBUG("set FIRST_LETTER_UPPERCASE");
     } else {
-        // if (OS_SERVER == os_type) {
-        //     sprintf(append_string + offset, "FIRST_LETTER_UPPERCASE = %s\n", "false");
-        //     DEBUG("restore FIRST_LETTER_UPPERCASE");
-        // } else {
+        if (OS_EULER == os_type) {
+             sprintf(append_string + offset, "FIRST_LETTER_UPPERCASE = %s\n", "false");
+             DEBUG("restore FIRST_LETTER_UPPERCASE");
+        } else {
         sprintf(append_string + offset,
                 "FIRST_LETTER_UPPERCASE = %s\n",
                 iniparser_getboolean(dic, "Password:FIRST_LETTER_UPPERCASE", false) ? "true"
                                                                                     : "false");
-        // }
+        }
     }
 
     DEBUG("append string :%s", append_string);
@@ -491,4 +493,4 @@ int main(int argc, char **argv) {
     }
 
     return 0;
-}
\ No newline at end of file
+}
-- 
2.27.0

