root以外のユーザーとして/usr/sbin/からコマンドを実行しようとしたときにメッセージを表示する方法はありますか?

root以外のユーザーとして/usr/sbin/からコマンドを実行しようとしたときにメッセージを表示する方法はありますか?

たとえば、私が使用したほとんどのLinuxディストリビューションで次のように入力した場合設定されている場合通常のユーザーであれば、ルートだけがそのようなコマンドを実行できるというメッセージを受け取ります。

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

ifconfigChris Downが言ったように、これらのプロンプトメッセージがデフォルトIDで発行されるのを見たことはありません。

答え2

Debianではコマンドが見つからないとだけ出てきます(/usr/bin/でコマンドを探しているからです)

/sbinこれは root ではなく、ユーザーの PATH にないことを意味します。/sbin/ifconfigルートでない場合は、明示的に実行して表示される内容を確認してください。

メッセージが正常な場合は、/sbinPATHに追加するだけです。

関連情報