diff --git a/v2rayN/ServiceLib/Handler/CoreAdminHandler.cs b/v2rayN/ServiceLib/Handler/CoreAdminHandler.cs index 3e7d3f93..661d9052 100644 --- a/v2rayN/ServiceLib/Handler/CoreAdminHandler.cs +++ b/v2rayN/ServiceLib/Handler/CoreAdminHandler.cs @@ -9,7 +9,6 @@ public class CoreAdminHandler private static readonly Lazy _instance = new(() => new()); public static CoreAdminHandler Instance => _instance.Value; private Config _config; - private readonly string _sudoAccessText = "SUDO_ACCESS_VERIFIED"; private Action? _updateFunc; private int _linuxSudoPid = -1; @@ -50,17 +49,10 @@ public class CoreAdminHandler } }; - var sudoVerified = false; DataReceivedEventHandler dataHandler = (sender, e) => { if (e.Data.IsNotEmpty()) { - if (!sudoVerified && e.Data.Contains(_sudoAccessText)) - { - sudoVerified = true; - UpdateFunc(false, ResUI.SudoPwdVerfiedSuccessTip + Environment.NewLine); - return; - } UpdateFunc(false, e.Data + Environment.NewLine); } }; @@ -72,8 +64,6 @@ public class CoreAdminHandler proc.BeginOutputReadLine(); proc.BeginErrorReadLine(); - await Task.Delay(10); - await proc.StandardInput.WriteLineAsync(AppHandler.Instance.LinuxSudoPwd); await Task.Delay(10); await proc.StandardInput.WriteLineAsync(AppHandler.Instance.LinuxSudoPwd); @@ -118,7 +108,7 @@ public class CoreAdminHandler } else { - sb.AppendLine($"sudo -S echo \"{_sudoAccessText}\" && sudo -S {cmdLine}"); + sb.AppendLine($"sudo -S -k -p '' {cmdLine}"); } await File.WriteAllTextAsync(shFilePath, sb.ToString()); diff --git a/v2rayN/v2rayN.Desktop/Views/SudoPasswordInputView.axaml.cs b/v2rayN/v2rayN.Desktop/Views/SudoPasswordInputView.axaml.cs index ad1a0211..b5dcb5c9 100644 --- a/v2rayN/v2rayN.Desktop/Views/SudoPasswordInputView.axaml.cs +++ b/v2rayN/v2rayN.Desktop/Views/SudoPasswordInputView.axaml.cs @@ -64,8 +64,8 @@ public partial class SudoPasswordInputView : UserControl { try { - // Use sudo -S echo command to verify password - var arg = new List() { "-c", "sudo -S echo SUDO_CHECK" }; + // Use sudo echo command to verify password + var arg = new List() { "-c", "sudo -S -k -p '' echo SUDO_CHECK" }; var result = await CliWrap.Cli .Wrap(Global.LinuxBash) .WithArguments(arg)