gpt4 book ai didi

session - linux-PAM session 是否与 linux 进程 session 相同?

转载 作者:行者123 更新时间:2023-12-02 01:12:48 25 4
gpt4 key购买 nike

我们都知道 linux 系统调用 setsid() 允许我们随时创建一个新的 session ,尽管典型的做法是在我们登录时或者当我们想要启动一个新的守护进程时。我注意到 linux-PAM(可插入身份验证模块)也有“ session 管理”的概念,所以我的问题是:Linux PAM中的session和setsid()创建的session一样吗?在 linux PAM session 中通常可以做什么?谢谢。

最佳答案

简短的回答是否定的,它们是不同的东西,但是处理登录 session 的进程应该同时处理它们。

PAM session 是 libpam 内部的一个概念。简而言之,当使用 PAM 的应用程序启动时,它会调用 pam_start,然后调用一个或多个 PAM 函数,这些函数又由 libpam 分派(dispatch)给 PAM 模块。其中两个调用是 pam_open_sessionpam_close_session

PAM session 的目标是处理(通常是交互的,但不一定)登录 session 的设置和拆卸。因此,在 session 组中配置的 PAM 模块通常会做一些事情,例如将用户添加到 utmp,设置任何每次登录环境(例如本地 tmpdir,如果有人配置这样的东西),存储 Kerberos 凭据,等等。在 session 结束时,他们将撤消这些更改。

请注意,这意味着调用 pam_open_session 的进程必须在登录 session 的长度内停留,以便它可以在结束时调用 pam_close_session。没有任何魔法可以让这一切发生。

setsid 是低得多的级别。 setsid 与进程组处于大致相同的级别,进程组是通常附加到 tty(控制终端)的相关进程组。其目的主要是用于 shell session 管理:您的 session 是在您关闭 shell 时通常应该接收 SIGHUP 的所有进程,您可能希望使用进程管理(例如暂停和继续)进行管理,等等。您的 shell session 组中的所有进程都有一个控制终端设置为您的伪 tty,这对进程控制和信号处理有各种低级影响。

关于session - linux-PAM session 是否与 linux 进程 session 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15352700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com