端末からログインするときに特定のシェルを使用してログイン

端末からログインするときに特定のシェルを使用してログイン

SSHを介してシステムにログインしたら、デフォルトのシェルを使用して簡単にまたはssh user@hostなどssh user@host 'bash --norc --noprofile'を指定できますssh user@host ksh

ローカル端末にログインすると同様の動作が発生する可能性があります(端末がシステムに直接接続されており、ユーザー名の入力を求められます)。

特定のユースケースはscreenログイン時に実行されています。ここで、ダフ設定オプションは画面の起動を防ぎ、ログインの成功を防ぎます。 SSHアクセス権がある場合は、ログインして特定のコマンドを実行して問題を解決できますが、端末アクセス権のみが問題を解決する方法を知ることはできません。

答え1

user項目をコピーし、/etc/passwd(a)名前をegからuseregに変更し、user_mod_shell(b)デフォルトのシェルを変更できます。 「私は誰ですか」という混乱(実際の質問ではないかもしれません)は、起動USER時に設定によって減らすことができます。

答え2

ターミナルマルチプレクサ(それ以外のtmuxものscreen)をシェルの初期化に入れます。欲しくない実装する(これも可能です) - 端末マルチプレクサに問題がある場合は、シェルにジャンプします。

よりユーザーフレンドリーにするには、@EvanTeitelmanのコメントにある提案を使用して実際にこれを実行できますmultiplexer && exit。これにより、マルチプレクサが正常に終了するとセッションが終了します。

答え3

最後に、変数が設定されている場合にのみ実行します.bash_profile。つまり、一般的なユースケース(ssh経由でログイン)は画面を取得します(ログイン時に実行するコマンドを指定してこの問題を解決できます)、コンソール接続の場合は通常のセッションのみを取得します。screen$SSH_CONNECTIONbash --noprofile

もちろん、ログインするたびに画面が実行されるように処理した場合は、まだ影響を受けます。しかし、これを完全に完璧にする方法はありません。

関連情報