使用全局快捷方式执行 sudo 命令(openvt)

使用全局快捷方式执行 sudo 命令(openvt)

我的目标是运行cmatrix脚本并同时锁定桌面,这样 cmatrix 将显示为屏幕保护程序,直到我回来并解锁计算机。

我的脚本如下所示:

gnome-screensaver-command -l & sudo openvt -ws cmatrix

现在我想让脚本能够运行而不需要每次都输入 sudo 密码,所以我更改了 sudoers 文件(像这样)。如果我在终端中运行它,它就可以正常工作,到目前为止一切顺利。

然后我把它添加到了PATH,因为我想把它绑定到全局快捷方式Ctrl+Alt+L,但如果我通过快捷方式调用它,它就不起作用了。桌面只是闪了一下,就像它想显示 一样cmatrix,但随后它直接进入解锁屏幕。

我发现该部分openvt没有按照应有的方式工作,即使它是脚本中唯一的东西。

有什么想法可以实现我的愿望吗?


编辑:在桌面闪烁的一瞬间,我设法在屏幕上读到了以下内容:

Error opening terminal: unknown

答案1

实际上现在我自己找到了解决方案 - 问题和解决方案与这个问题。我只需将此行添加到我的脚本中:

export TERM=xterm

答案2

看一下这个帖子:https://unix.stackexchange.com/questions/91541/why-is-path-reset-in-a-sudo-command
当您发出 sudo 命令时,您的 PATH 将被重置,因此恶意黑客无法更改并将其指向恶意cmatrix脚本。因此,请修改您的安全路径或将cmatrix程序的确切位置附加到 sudo 命令。

相关内容