当尝试以非 root 身份运行 /usr/sbin/ 中的命令时,有什么方法可以提示消息吗?

当尝试以非 root 身份运行 /usr/sbin/ 中的命令时,有什么方法可以提示消息吗?

例如,在我使用过的大多数 Linux 发行版中,当您键入时如果配置作为普通用户,您会收到一条提示消息,告诉您只有 root 可以执行此类命令。

在 Debian 中,它仅表示未找到命令(因为它正在 /usr/bin/ 中查找它)。

我想知道是否有任何方法可以提示消息,例如“ifconfig 必须以 root 身份运行”或类似的内容。

答案1

你可以这样做:

trap '
    if [[ $BASH_COMMAND =~ /sbin ]] && ((UID!=0)); then
        echo >&2 "${BASH_COMMAND##*/sbin/} must be run as root"
    fi
' DEBUG

ifconfig用户也可以访问,只需键入/sbin/ifconfig.

正如 Chris Down 所说,我从未见过ifconfig以默认身份发出这样的提示消息。

答案2

在 Debian 中,它只说命令未找到(因为它在 /usr/bin/ 中寻找它)

/sbin这只是意味着您的非 root 用户的 PATH 中没有。/sbin/ifconfig当您不是 root 时,显式运行并查看它显示的内容。

如果消息正常,您只需添加/sbin到您的 PATH 中即可。

相关内容