阻止脚本 sudo

bob*_*bah 2 security sudo authorization

我不喜欢输入sudo的密码,所以我禁用了它

%sudo ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

现在我有一个不好的副作用,我运行的任何 shell 脚本都可以代表我默默地执行sudo

最典型的用例是打算将实验性的东西安装到 ${HOME}/local 并忘记配置PREFIX

问题- sudo 是否有一种开箱即用的方式来阻止非交互式调用(来自脚本)?在Arch Linux 上,具体来说。

Gil*_*il' 6

您不能为所欲为,因为“脚本化 sudo”和“交互式 sudo”并不矛盾。脚本可以在终端中运行 sudo。可在终端以完全自动化的方式运行的命令的工具的一些例子是scriptexpectscreentmux,等。

即使 sudo 可以以某种方式检测到您“直接”运行它(事实并非如此,因为您正在与键盘和鼠标等外围设备交互,而不是与进程交互),它也不能保护您免受流氓脚本的侵害。例如,流氓脚本可能会在您的帐户中植入虚假命令,以便您下次运行时sudo它会调用一些包装器,这些包装器会离散地捎带您的访问权限。

无论如何,您要保护的威胁并不是特别重要。

授权“在你说任何话之前,不,我知道不要让我的电脑处于登录状态,登录我的所有帐户。我已经设置了它,所以在几分钟不活动后它会自动切换到我兄弟的。”

如果您不相信某些软件不会做有问题的事情,例如窃取您的社交媒体帐户,请不要在您的帐户上运行它。至少在不同的帐户上运行它(当然,这不是 sudoer),没有 GUI 访问权限。为了更好的隔离,请在虚拟机中运行它。(这仍然不完美,它可以安全地抵御普通恶意软件,不一定是政府针对您的情况。)