diff --git a/backend/services/adminreset/password_linux.go b/backend/services/adminreset/password_linux.go index fbba0e5..00732de 100644 --- a/backend/services/adminreset/password_linux.go +++ b/backend/services/adminreset/password_linux.go @@ -46,6 +46,7 @@ func ReadVisibleInput(prompt string) (string, error) { } func readSystemdInput(prompt, echo string) (string, error) { + prompt = strings.TrimRight(prompt, ":: ") + ":" // systemd 代理把提示保存在单行配置中,用终端换行控制显示列表,避免配置被拆行。 prompt = strings.ReplaceAll(strings.ReplaceAll(prompt, "\r\n", "\n"), "\n", "\x1bE") command := exec.Command("systemd-ask-password", "--no-tty", "--echo="+echo, prompt) diff --git a/backend/services/adminreset/password_windows.go b/backend/services/adminreset/password_windows.go index d6945cd..b70a700 100644 --- a/backend/services/adminreset/password_windows.go +++ b/backend/services/adminreset/password_windows.go @@ -40,7 +40,7 @@ func readWindowsPassword(prompt string) (string, error) { if !term.IsTerminal(int(os.Stdin.Fd())) { return "", errors.New("受保护的密码输入需要交互式控制台") } - fmt.Fprint(os.Stderr, prompt+": ") + fmt.Fprint(os.Stderr, strings.TrimRight(prompt, ":: ")+": ") valueBytes, err := term.ReadPassword(int(os.Stdin.Fd())) fmt.Fprintln(os.Stderr) if err != nil {