$ 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-linux
2018年7月27日にバージョン2.32-0.2リリース)、Debianは別の実装su
に切り替えました。エラー833256。 「New」su
はに由来し、「Old」は包装util-linux
に含まれています。login
src: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 -
PATH
su -