以前のユーザーを参照せずにユーザーを切り替えることはできますか?

以前のユーザーを参照せずにユーザーを切り替えることはできますか?

しばらく前に許可されていないLXCを使用しているときにsuコンテナ作成コマンドを使用してユーザーに切り替えると、失敗しましたがssh user@localhostログインに使用した場合は失敗したことがわかりました。

LXCに関する質問ではありませんが、参照を残したり、古いユーザーから変数を取得したりせずにユーザーを切り替えるための最良の方法は何ですか?

ありがとうございます!

答え1

suとの違いは、後者が実際にログインシェルを含むのに対して、前者はデフォルトでログインシェルを含まないということです。新しいインタラクティブシェルを作成しますが(理解するには、ssh上部のINVOCATIONを参照してください)man bashインタラクティブそしてログインシェル)。からman su

以前のバージョンとの互換性のために、suはデフォルトで現在のディレクトリを変更せずに環境変数HOMEとSHELLのみを設定します(ターゲットユーザーがrootでない場合はUSERとLOGNAMEが追加されます)。いつもおすすめです--loginオプションを使用してください(ショートカットではなく)混合環境による副作用を防ぎます。

したがって、試してみて、su --loginこれがあなたの要件を満たしていることを確認できます。

私はあなたがGUIを使用していると仮定していますが、これがすぐにログアウトしてから再度ログインしない理由です。しかし、可能loginとにかく、使用する端末で簡単に実行すれば可能です(初期化システムによって異なります)。機能している場合は、通常のプロンプトが表示され、login:完了したらexit従うことができますsu

関連情報