su
少し前に、権限のない LXC を操作していたときに、ユーザーに切り替えるとコンテナを作成するコマンドが失敗するが、ssh user@localhost
ログインすると機能することに気付きました。
これは LXC 関連の質問ではありませんが、参照を残したり、古いユーザーから変数を持ち込んだりせずに、ユーザーを切り替える最適な方法が知りたいと思いました。
ありがとう!
答え1
su
との違いは、後者は実際にログインシェルを必要とするのに対し、前者はデフォルトでは必要としないという点です。ただし、前者は新しい対話型シェルを作成します(その重要性についてはssh
、の先頭にある「INVOCATION」を参照してください)。man bash
相互の作用そしてログインシェル)。出典man su
:
下位互換性のため、suはデフォルトで現在のディレクトリを変更せず、環境変数HOMEとSHELL(ターゲットユーザーがrootでない場合はUSERとLOGNAMEも)のみを設定します。常に--login オプションを使用する(ショートカット - の代わりに) 環境の混在によって発生する副作用を回避するためです。
したがって、試してみてsu --login
、それが望みどおりに機能するかどうかを確認できます。
GUIを使用していると仮定すると、単に終了して再度ログインするわけではないはずです。しかし、5月とにかく、使用しているターミナルから実行するだけで、(init システムによって異なると思いますが) 可能ですlogin
。動作する場合は、通常のプロンプトが表示されるはずです。完了したら、に従ってそこからlogin:
実行できます。exit
su