2つの違いは何ですか
su target-user
そして
login target-user
?後者が必要な場合がありますsudo
。
私の考えには両方ですtarget-user
。ありがとうございます。
答え1
私の考えでは、すべてのターゲットユーザーのログインセッションを作成するようです。
実はそうではありません。 su
ログインセッションは作成されません。別のユーザーアカウントでプログラムを実行するように「ユーザーを切り替える」と、そのユーザーが使用できる権限の総数にそのアカウントの権限を追加します。既存の実行中のログインセッション。
実際、login
プログラムはログインセッションを作成しません。誰でも。ログインセッションが必要で、login
次のプロセスを実行します。会議の主催者プロセスと接続された制御端末は、それを呼び出すプログラムによって設定されました。 login target-user
、C シェルの組み込みlogin
コマンドが実際に 1 つであるとし、exec
次を選択します。既存の他のユーザーアカウントのログインセッションが確立されました。もちろん、これは現在よく知られているリスクを伴います。
もちろん、これはカーネルの概念を考慮したものです。ログインセッション、ここでは会議の主催者、ㅏ制御端子とプロセスグループ。システムの人々は、systemd-logind
PAMプラグインを介して管理される完全なアプリケーションモードログインセッションという独自の概念を考案しました。ここではルールが少し異なります。部分的には、システムユーザーがシャットダウン時にサービスの停止とセッションの中断を混乱させたためです(まだこの問題を解決する必要があります)。ただし、su
このタイプのログインセッションも作成されません。
追加読書
- ジョナサンデボインポラード(2014)。ユーザー権限を削除するためにsuを乱用しないでください。。一般的な答え。
- https://unix.stackexchange.com/a/405780/5132
- (sd-pam)プロセスは、権限のない「pam_session_close()」をどのように削除しますか?
- pam_unixとpam_systemdの違いは何ですか?
- フレームバッファデバイスでテキストコンソールを起動するシステムサービスは何ですか?
- ジョナサン・ド・ボーイン・ポラード(2016-06-01)。Re:ユーザーがログアウトした後、systemdはバックグラウンドプロセスを終了します。。 Debian のバグ #825394.