suのルートパスの設定

suのルートパスの設定

(Debian コンピュータで) root に変更すると、suPATH が正しく設定されていないようです.いくつかの重要なディレクトリがusr/local/sbinありません。

次の行があります/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"
fi
export PATH

私は/etc/login.defs(基本項目も)次のようになります。

ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

なぜ私のPATHが正しく設定されていないのですsuか?

ベストアンサー1

Modernは、環境を保護するように求められたときに発信者suからリセットされなくなりましたPATH。これが必要な場合は、su --login代わりにそうしてください。

から/usr/share/doc/util-linux/NEWS.Debian.gz

- new 'su' (with no args, i.e. when preserving the environment) also
  preserves PATH and IFS, while old su would always reset PATH and IFS
  even in 'preserve environment' mode.
...
The first difference is probably the most user visible one. Doing
plain 'su' is a really bad idea for many reasons, so using 'su -' is
strongly recommended to always get a newly set up environment similar
to a normal login. If you want to restore behaviour more similar to
the previous one you can add 'ALWAYS_SET_PATH yes' in /etc/login.defs.

おすすめ記事