【问题标题】:Controlling a bash shell using the process class with .NET Core 2.0使用 .NET Core 2.0 的进程类控制 bash shell
【发布时间】:2018-08-31 08:22:15
【问题描述】:

在 Linux Ubuntu 上使用 .NET Core 2.0 我想启动一个 bash shell 使用 Process 类,重定向 StandardInput 和 StandardOutput 并想输入命令并接收结果。

这对于cddir 等命令非常有效。

当我想使用sudo 执行命令时,bash 挂起,但是, 并等待输入密码。我想同样的事情也会发生 对于需要通过 Yes 或 No 确认的命令。

有没有办法输入密码或确认,如是或否 来自我的应用程序?

【问题讨论】:

    标签: bash .net-core


    【解决方案1】:

    选项 1 是,从搜索中删除“netcore”标签,然后查看纯 bash 的答案,例如 Is there a way to input automatically when running a shell?

    选项 2,是否存在或者您可以创建不需要 sudo 的用户名/密码?如果是这样,那么the right Process.Start() 过载可能会成功吗?我希望ProcessInfo 类上可能有一些东西可以请求提升的权限。在 Windows 平台上,使用 Verb="runas" 会执行此操作,但会调用 UAC。

    选项 3:忘记 sudo 并查看其他 Linux 选项,例如创建一个设置了 setuid 的可执行文件。看看例如https://serverfault.com/questions/262809/correct-way-to-give-elevated-privileges-to-mono-application 一些想法。

    【讨论】:

    • 非常有用的选项。在选项 1 之后,我发现了一个有趣的(但有争议的)命令“echo TopSecretPassword | sudo -S 不管”。我还不确定什么会最有效。需要更多测试...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 2018-09-13
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多