~からhttps://unix.stackexchange.com/a/489913/674
SSHを使用して接続すると、ログインと見なされます。
~からプロセスを所有者として実行したり、ログインせずに所有者になる方法は?
関連していないSSHを使用した接続
login
sshd
ログインアクティビティを実行するには?プログラムを呼び出すことlogin
はできませんか?
SSHは直接表示されませんが、APUEはどのように機能するかを示すダイアグラムを表示し、rlogin
説明も提供します。
rlogind
login
プログラムは通常2つの間でユーザーを認証するため、サーバーとログインシェルの間でexecへの2つの呼び出しを表示します。
まだログインが必要ですかsshd
?exec
login
ありがとうございます。
答え1
提供した図は、rlogin
ユーザーに対話型シェルを提供する上位レベルのパスや他のネットワークベースのプロセスとほぼ同じです。telnet
ssh
接続を受け入れるデーモンは認証を行います。成功したら、対話型ユーザーセッションにptyを割り当て、ptyと通信する子(ユーザー)セッションを作成します。その後、デーモンはptyとネットワーク間の通信を処理します。
ログイン中、デーモンは他の管理機能(更新、lastlogin
監査ログなど)も実行できます。一つあるutmp
wtmp
たくさん実行されたバックグラウンド操作の数。
sshd
これはさまざまな方法で設定できます。UseLogin
ユーザーセッションを作成するために使用できるパラメータがあります。デフォルトは「いいえ」です。
% sudo grep UseLogin /etc/ssh/sshd_config
#UseLogin no
yes
(例:sshd_configでログインを使用する)
答え2
APUEは少し古くなったり、現代のLinuxユーザースペースには合いません(現代のLinux DistroではなくUNIXです)。
最新のLinuxディストリビューションでは、SSHサーバーはネットワーク経由でユーザーを認証し(セッション管理者と会話して)、ログインするセッションを作成します。リモートセッション(図の一部に示されています)は、ログインマネージャが入力データをネットワークソケットからptyマスターに渡すことによって機能するため、シェルはptyスレーブデバイスで動作できます。 Ptyはまったく異なるトピックです。
あなたの写真が実際に示しているのは、セッションマネージャがまったくなかった古いシステムです。 Stephenが他の答えで言ったように、これはまったく異なるタイプの「会話」を作成します。
最新のシステムでは、セッションは通常、管理ユーザーに簡単な構造を提供するセッションマネージャを介して作成されます。