gpt4 book ai didi

linux - 如何从终端打开 xterm 窗口并从 xterm 在后台运行命令?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:38 26 4
gpt4 key购买 nike

我的应用程序尝试执行根命令“sudo ifup eth0”和“sudo ifdown eth0”。但是它返回了一个错误“sudo:抱歉,你必须有一个 tty 才能运行 sudo”。因此,它需要一个 tty 来执行 sudo 命令。因此,我尝试通过打开 tty session 来执行命令

gnome-terminal --command="sudo ifdown eth0" &
xterm -e "sudo ifdown eth0" &

然后它工作正常。但是我无法从新创建的 gnome 终端或 xterm 发送命令。即,如果我在新创建的 gnome 或 xterm 窗口执行命令之前关闭它们,那么命令将立即终止。

您能否建议如何禁止窗口被用户关闭或者如何让它对用户不可见?

注意:您可以使用 system-config-network 命令而不是 ifdown 和 ifup 来测试它

最佳答案

我建议不要使用 xterm 或 gnome-terminal 为 sudo 提供终端,而是直接处理“抱歉,您必须有 tty 才能运行 sudo” 消息。 p>

sudoers 文件中有一个 requiretty 选项,它使 sudo 请求成为一个终端。如果使用 !requiretty 取消设置此选项并且使用 NOPASSWD 选项执行命令 sudo 应该运行而无需打开新的终端窗口。此服务器故障中有更多详细信息 post .

这就是 sudo 在 cron 脚本中的用法。

由于 requiretty 选项在 sudo 不仅在 cron 脚本中使用而且让远程用户以提升的权限发出命令的环境中提供额外的安全性,因此可以限制 !requiretty 的操作。

   User_Alias LOCAL_USERS = john, mary
Cmnd_Alias NETWORK_SCRIPTS = /sbin/ifup, /sbin/ifdown
Defaults!NETWORK_SCRIPTS !requiretty
LOCAL_USERS ALL = NOPASSWD: NETWORK_SCRIPTS

关于linux - 如何从终端打开 xterm 窗口并从 xterm 在后台运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com