ログインシェルの目的は何ですか?

ログインシェルの目的は何ですか?

Bashのマニュアルは次のように言います:

ログインシェルの引数を持たない最初の文字は「-」または--loginオプションで呼び出されます。

これは、起動方法に応じてログインシェルを定義します。

または、目的の目的に応じてログインシェルを定義できますか?

たとえば、ログインシェルをユーザーがログインする必要があるシェルとして定義できますか?たとえば、ログインではなく対話型 bash シェルで create bash login シェルを実行すると、bash --loginログインする必要はありません。私のユーザー名とパスワードが暗黙的にキャッシュされて再利用されるのですか、それともログイン操作を実行しないのですか?

ログインを実行するためにログインシェルが必ずしも必要ではない場合、その意図された目的は何であり、ログインシェルと非ログインシェルを区別する機能がありますか?

ありがとうございます。

ベストアンサー1

ログインはシェル以外のツールで処理されます。例えば login独自またはデスクトップマネージャ(PAMや他のさまざまなツールの助けを借りて)。

これ目的ログインシェルの役割は、ログインを処理するのではなく、ログインセッションの最初のシェルとして適切に機能することです。これは、主にログインセッションごとに一度だけ処理する必要がある開始ファイルを処理し、ログインセッションを不正アクセスから保護することを意味します。特定のシステム機能(特にジョブの一時停止)と対話するために必要です。

少なくともログインシェルの詳細バッシュで実装、以下に説明するように:

  • ログインシェルはのコマンドを処理してから、およびその間で見つかった最初の/etc/profileファイルを処理します(次に始まる非対話型ログインシェルではない場合)。~/.bash_profile~/.bash_login~/.profileいいえオプション--login);
  • logout代わりにログインシェルの実行を終了してくださいexit
  • ログインシェルを終了すると、すべての操作が一時停止します。
  • ログインシェルは一時停止できません。
  • ログインシェルセットHOME変数(POSIXly正しいモードを除く)
  • ログインシェルlogin_shellシェルオプションを設定します。

おすすめ記事