这是一个错误吗?
https://github.com/systemd/systemd/blob/v234/src/core/execute.c#L1126
/* Drop privileges - we don't need any to pam_close_session
* and this will make PR_SET_PDEATHSIG work in most cases.
* If this fails, ignore the error - but expect sd-pam threads
* to fail to exit normally */
Run Code Online (Sandbox Code Playgroud)
比较http://jdebp.eu./FGA/dont-abuse-su-for-dropping-privileges.html
新的实现调用 fork() 并且只在子进程中删除特权,保留一个特权帐户父进程,一旦子进程退出,它可以调用 PAM“用户会话”清理函数。(请参阅当代帐户,例如 Ben Collins 的这个帐户。)在父进程中打开 PAM“用户会话”并在子进程中关闭的初始实现被发现存在错误,例如 Debian Bug #195048, Debian错误 #580434 和 Debian 错误 #599731 又名 Gentoo 错误 #246813,因为非特权子进程没有访问权限来撤销所有会话设置,而在特权父进程中打开会话所做的一切。
在接下来的十年中,与 PAM 和 su 相关的点点滴滴不断涌现。例如,在 2004 年,SELinux 可插拔身份验证模块存在问题。
是的。事实上,这是一个 systemd 错误,在过去两年中一直处于开放状态(在撰写本文时),systemd 人员根据错误报告完全忽略了该错误。
根据 2000 年 Ben Collins 的分析和 2001 年 David Z Maze 对 GDM 登录pam_close_session()出错的分析,systemd 可能存在安全漏洞,等待好奇者发现。
| 归档时间: |
|
| 查看次数: |
14922 次 |
| 最近记录: |