我的目标是运行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 命令。