是否可以强制使用 sudo 与不需要 sudo 的命令?

是否可以强制使用 sudo 与不需要 sudo 的命令?

我经常使用嵌入式 Linux 发行版,因此有时我有一个甚至多个终端来minicom连接到该系统。我曾两次输入reboot错误的控制台,然后我重新启动了主机操作系统而不是嵌入式设备。我知道这是我的错,我应该更加小心,但我想知道是否可以强制使用sudo不需要的命令sudo。我想reboot在控制台中输入时必须输入密码。

答案1

如果/usr/local/bin位于PATH包含该命令的目录之前reboot,您可以简单地创建一个名为 的脚本/usr/local/bin/reboot,该脚本可以询问您想要的任何类型的确认问题。

例如,脚本可能是这样的:

#!/bin/sh
echo "Please enter the short hostname of the system you wish to reboot:"
read REBOOTHOST
if [ "$REBOOTHOST" = "$(hostname -s)" ]
then
    # invoke the real reboot command
    exec /sbin/reboot "$@"
else
    echo "Sorry, you're in the wrong system. This is $(hostname -s)."
    echo "Please be more careful!"
fi

该脚本不要求您输入密码(您现在可能可以通过脊椎反射操作来执行此操作,无需实际思考),而是要求您输入要重新启动的系统的主机名,并在以下情况下拒绝执行操作:输入的主机名不正确。这将强制在您的意图和您输入命令的实际主机之间进行交叉检查。

对于更严格的实现,您可能需要研究 Debianmolly-guard包裹:它提供了一个可以轻松实现此类检查的框架,以及许多针对各种情况的现成检查。

相关内容