Debian su - そして su $PATH の違いは何ですか?

Debian su - そして su $PATH の違いは何ですか?
$ su -
Password: 
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# exit
logout
$ su
Password: 
# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

$PATH単純なsuを実行すると、/ binと/ sbinが追加されない理由がわかりません。過去にもこんなことがありました。この問題をどのように解決できますか?私が気づいたこと:

-rw-r--r-- 1 root root 0 Jan  8  2018 /etc/environment

しかし、それ以外は私のシステムは正常に見えます。

編集:必須事項を忘れました。uname -a

Linux rpi3 4.17.0-1-arm64 #1 SMP Debian 4.17.8-1 (2018-07-20) aarch64 GNU/Linux

編集2:

$ cat /etc/issue
Debian GNU/Linux buster/sid \n \l

「安定した」パッケージはaarch64で正しく実行されないため、すべてのパッケージは「テスト」リポジトリにあります。

ベストアンサー1

最近(util-linux2018年7月27日にバージョン2.32-0.2リリース)、Debianは別の実装suに切り替えました。エラー833256。 「New」suはに由来し、「Old」は包装util-linuxに含まれています。loginsrc:shadow

から引用util-linux/NEWS.Debian.gz:

2つの実装は非常に似ていますが、わずかな微妙な違いがあります(もちろん、まだ見つかっていないものがあるかもしれません)。

  • 新しい「su」(引数なし、つまり環境を保存するとき)もPATHとIFSを保存しますが、古いsuは「環境保存」モードでも常にPATHとIFSをリセットします。
  • su'' (空のユーザー文字列) はルートを提供するために使用されましたが、今はエラーを返します。
  • 以前は su に 1 つの pam 設定しかありませんでしたが、現在 'su -' は /etc/pam.d/su-l に別々に設定されます。

最初の違いはおそらくユーザーにとって最も明白です。単純な「su」を使用することはさまざまな理由で実際には悪い考えなので、常に通常のログインと同様の新しい設定環境を得るために「su -」を使用することをお勧めします。以前の動作と同様の動作を復元するには、/etc/login.defs に「ALWAYS_SET_PATH yes」を追加します。

以前に使用されたsu実装PATHもこのバグレポートで説明されています。833256#80。新しいsu予約PATH済みいいえに電話してくださいsu -

簡単に言えば、以前のバージョンのDebianは少なくともsuのように動作します。最新の実装では、他のディストリビューションと同様に、ほぼ常に使用する必要があります。su -PATHsu -

おすすめ記事