Debian が root ユーザーに対して他のユーザーと異なる PATH を設定するのはなぜですか?すべてのユーザーに "sbin"ディレクトリが含まれていないのはなぜですか? [コピー]

Debian が root ユーザーに対して他のユーザーと異なる PATH を設定するのはなぜですか?すべてのユーザーに "sbin"ディレクトリが含まれていないのはなぜですか? [コピー]

ネットワークインストーラを使用してDebian 11 "Bullseye"(サーバーとして使用)を新規インストールする場合、ルートのパスは次のようになります。

root@debian:~# echo $PATH | tr : '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin

他のユーザーのパスは次のとおりです。

jivan@debian:~$ echo $PATH | tr : '\n'
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games

この動作は最初の数行で発生します/etc/profile

if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

しかし、なぜこれがデフォルトの動作ですか? Ubuntuサーバーから来たすべてのユーザー/usr/sbinは自分のPATHを持っ/usr/local/sbinています(私が言及/etc/profileした行はUbuntuインストールには存在しません)。ルート注文。この問題を「修正」するために1行を追加しましたが、/etc/profile.dこれがデフォルトの理由を知りたいです。

答え1

~からファイルシステム階層標準:

3.16。 / sbin:システムバイナリ3.16.1。目的システム管理ユーティリティ(および他のルート専用コマンド)は、/ sbin、/usr/sbin、および/usr/local/sbinに保存されます。

したがって、私たちは正しく実行するために必要な管理レベルのコマンド/sbinだけが必要であることがわかります。root一般ユーザーには不要で、実行しようとするとエラーが発生する可能性があります。

管理者権限を持つ単一のユーザー(たとえばを通じて)を使用するシステムでは、sudoこれらのディレクトリを追加するのが妥当である可能性があります。管理者と非管理者を持つマルチユーザーシステムでは、管理者は自分の$HOME/.profile

関連情報