しばらく前に許可されていない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
。