gpt4 book ai didi

c - PAM 堆栈是否始终以 root 身份运行?

转载 作者:可可西里 更新时间:2023-11-01 11:49:11 25 4
gpt4 key购买 nike

我正在为 Linux PAM 编写一个模块,它使用 setuid() 将特权授予正在验证的用户。当然,这只有在 EUID 是 root 时才有效。那么,PAM 堆栈是否始终以根用户身份运行,而不管使用它的应用程序如何?

最佳答案

不总是,不。大多数使用 pam 的应用程序都被标记为 setuid,或者具有 setuid 帮助程序——因为许多标准插件确实需要 root——但是如果没有被调用的插件需要特权,则可以在没有 root 权限或升级方法的情况下使用该库。

一些例子:

  • 使用/etc/shadow 的标准身份验证确实需要 root,如果这些权限不可用,PAM 模块读取/etc/shadow 将失败,除非您平台的 PAM 模块用于读取/etc/shadow bundle一个合适的 setuid 助手,并直接从 PAM 模块调用它。
  • LDAP 身份验证通常不需要 root,LDAP PAM 模块可以在没有 root 权限的情况下使用。

这是完全公平的——并且与其他模块的编写方式一致——如果 PAM 模块需要 root 权限并且这些权限不可用,它就会失败。旨在与最广泛可用的 PAM 模块阵列兼容的软件将具有可用的权限升级路径,即使 PAM 库本身不提供此类机制。

关于c - PAM 堆栈是否始终以 root 身份运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151556/

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