feat: 飞牛NAS成本审核更新 - 新增SKU、更新价格表、清理归档及订单记录,同步auto-check改动
This commit is contained in:
@@ -40,17 +40,17 @@ func runPrivileged(client *ssh.Client, cmd, sudoPwd string) (string, error) {
|
||||
if out, err := sshclient.RunCommand(client, "id -u"); err == nil && strings.TrimSpace(out) == "0" {
|
||||
return sshclient.RunCommand(client, cmd)
|
||||
}
|
||||
// 非 root:尝试 sudo
|
||||
// 非 root:尝试 sudo(-p '' 静默密码提示,避免提示文本污染命令输出)
|
||||
if sudoPwd != "" {
|
||||
// echo 密码 | sudo -S 执行;整条命令用双引号包裹,避免命令内部单引号嵌套冲突。
|
||||
// 仅对命令内的双引号转义(docker 命令均不含双引号,安全)。
|
||||
quoted := strings.ReplaceAll(singleLine(cmd), `"`, `\"`)
|
||||
wrapped := fmt.Sprintf("echo %s | sudo -S -- sh -c \"%s\"", shellQuote(sudoPwd), quoted)
|
||||
wrapped := fmt.Sprintf("echo %s | sudo -S -p '' -- sh -c \"%s\"", shellQuote(sudoPwd), quoted)
|
||||
return sshclient.RunCommand(client, wrapped)
|
||||
}
|
||||
// 无密码:先尝试免密 sudo (-n),失败则回退普通 sudo(会提示需要密码)
|
||||
quoted := strings.ReplaceAll(singleLine(cmd), `"`, `\"`)
|
||||
if out, err := sshclient.RunCommand(client, "sudo -n -- sh -c \""+quoted+"\""); err == nil {
|
||||
if out, err := sshclient.RunCommand(client, "sudo -n -p '' -- sh -c \""+quoted+"\""); err == nil {
|
||||
return out, nil
|
||||
}
|
||||
return sshclient.RunCommand(client, "sudo -- sh -c \""+quoted+"\"")
|
||||
|
||||
Reference in New Issue
Block a user