インタラクティブに実行するコマンドではありません。

インタラクティブに実行するコマンドではありません。

私は読んでいます。アプエ引き続きプログラムを参照していloginますが、私のOS(Ubuntu)では、このプログラムが何をしているのかまだわかりません。

§8.11:

通常、実際のユーザーIDはlogin(1)ログイン時にプログラムによって設定され、決して変更されません。loginスーパーユーザープロセスであるため、setuid呼び出し時に3つのユーザーIDをすべて設定します。

ps aux | grep login:

root       840  0.0  0.0  70732  6120 ?        Ss   15:13   0:00 /lib/systemd/systemd-logind
root      1120  0.0  0.0 419680  9468 ?        Sl   15:13   0:00 gdm-session-worker [pam/gdm-autologin]
tianhe    1151  0.0  0.1 445184 20540 ?        SLl  15:13   0:05 /usr/bin/gnome-keyring-daemon --daemonize --login
tianhe   10838  0.0  0.0  21536  1060 pts/0    S+   21:50   0:00 grep --color=auto login

簡単に言えば、loginこのプログラムはオペレーティングシステムにどのような機能を提供しますか?

どのような状況で使用または実行されますか?

loginところでと比較するとどうでしょうかssh

答え1

インタラクティブに実行するコマンドではありません。

このloginコマンドは通常コマンドラインには入力されません。
-手動login。 IBM AIX 7.2

かつてそうでした。このアプローチは1980年代に効果があり、Cシェルユーザーは外部プログラムに接続し、スーパーユーザーのUIDに設定されたそのプログラムでシェルプロセスを上書きするlogin便利な組み込みコマンドも持っていました。execlogin

しかし、今日のオペレーティングシステムはもはや1980年代のBSDのようには機能しません。 ㅏログインセッションsetsenv(しかし、これはそこで議論されているセッションタイプです。)プロセスが正しく起動するには、単方向トラップドア(ユーザーセキュリティコンテキスト、制御グループ、UID "taint"フラグの変更、AIXなど)が多すぎます。ランダムユーザー新規ログインセッションすでにここにユーザーログインセッション。

それにもかかわらず、1990年代のPAMの出現によりlogin新しいプログラムによって上書きされるシェルプロセスは、もは​​や1980年代のようにツリーの最上位プロセスではありません。これはスーパーバイザプロセスのサブプロセスであり、PAMセッションの確立と解除を担当します。

これが「デーモン化」がエラーであり、login既存のログインセッションで実行するのが実際に賢明ではない理由です。

システムプログラムです。

login~と呼ばれる端末ログインサービス通常、サービスまたはサービス管理インフラストラクチャがいくつかの環境変数を設定した後、ターミナルデバイスを開き、ラインルールを初期化/プッシュし、それを制御ターミナルに設定し、いくつかの制御シーケンスでターミナルを初期化します。

  • 1987年、AT&T Unix System 5リリース4では、これらのサービスはttymonサービスアクセス機能の一部として管理されました。今日でも、OpenSolarisやIllumosやSchillixなどの派生製品でこれらのコンテンツを見ることができます。
  • systemd Linuxオペレーティングシステムでは、これはサービスです(通常はサービスのエイリアス)。これは、宇宙のシステム5の面で注目すべき奇妙な現象であり、ほとんど誰も呼び出さない状況でもまだプログラムを使用して呼び出されます。autovt@somethinggetty@somethinggettylogin
  • オペレーティングシステムで使用Noshツールセットサービス管理の場合、これがサービスです。ttylogin@something
  • 宇宙のBSD側でnoshサービス管理が使用されていない場合、これらのサービスは表に従ってプロセス#1によって生成されたサービスです/etc/ttys

仮想または物理端末にログインしている場合は、login対話型ログインシェルを呼び出す前にパスワードとユーザー名を入力するように求められます。

loginSSH ログインには使用されません。未使用GUIログイン。どちらも動作が異なり、どちらも別のプログラムを使用します。 loginテキストユーザーインターフェースを介して端末と会話すると予想されます。

それはい以前はBerkeley rloginシステムで使用されていましたが、今は使用しないでください。いわゆるバークレー「r-」の順序に関するさらなる議論は、この回答の範囲をはるかに超えています。それで私は仕事が1980年代と同じように進まないと言いたいと思います。

追加読書

答え2

ウィンドウセッションにログインしている可能性があります。この場合、ディスプレイマネージャxdm...gdmkdmユーザーにログインします。しかし、ログインする他の方法もあります。たとえば、(指示どおり)Web経由で使用できますssh。ローカルにログインしてもWindowsシステムにログインしていない場合は、別のログイン手順が必要です。ログインが入る場所です。

を押してctrlaltf1ログインし、実行中のプロセスを確認します。ログイン状態を維持する理由

関連情報