これは多くのプログラム(すべてではない)で発生するようです。
別の例:同じ方法を使用していない場合、apt-getはアプリケーションを正しくインストールしていないようです。
すでにrootになっている場合は、Sudoを作成する必要はありません。
何故ですか?これを修正するにはどうすればよいですか?
TL、DR:su --login
またはSudo
を使用します。
Debianは、通常のユーザーに対して異なるPATH
を設定します。 /etc/profile
では、デフォルトで/sbin
がルート用に予約されていることがわかります。
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
type ifconfig
はユーティリティが/sbin/ifconfig
にあると言っているので、通常のユーザーは簡単にアクセスできません。引数なしでsu
を実行すると、PATH
変数を含め、呼び出し元のユーザーの環境が保持されます。一方、Sudo
は新しい環境を提供し、呼び出し元のユーザーのPATH
をオーバーライドします。
su
が誤動作していると思われる理由は、デフォルトでPATH
とIFS
をリセットするのはレガシー動作だからです。バスターは最近、動作が異なるsu
のutil-linux
実装に切り替えました。詳細については、/usr/share/doc/util-linux/NEWS.Debian.gz
を参照してください。
su - root
の代わりにsu root
を使用してください。次に、adduser username Sudo
と入力します
Dsstorefile1が言ったように、動作が変更されました。
「su」の代わりに「su-」を実行するか、
古いDebianの動作を維持するには、「/ etc /login.defs」に「ALWAYS_SET_PATHyes」を追加します。