如何学习 Linux PAM? - V2EX
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
jayeli
V2EX    Linux

如何学习 Linux PAM?

  •  
  •   jayeli Oct 22, 2025 2130 views
    This topic created in 201 days ago, the information mentioned may be changed or developed.

    我正在配置 Guacamole 的 PAM 认证,使用的是这个项目:voegelas/guacamole-auth-pam

    作者提供的示例是基于 Ubuntu 的,我在 Rocky 上并不能走通。问题在于 Ubuntu 上的文件 /etc/shadow 可以通过加入 shadow 用户组获得读权限,而 Rocky 上没有。

    简单查阅之后,我发现 deb 系和 rpm 系的 Linux 发行版对于 PAM 的设置好像不太一样。

    所以,想请教一下对于 PAM 熟悉的大佬如何学习。

    7 replies    2026-03-17 02:42:32 +08:00
    jayeli
        1
    jayeli  
    OP
       Oct 22, 2025
    目前的解法是问 ChatGPT 要了一份 PAM 的配置:

    ```
    # /etc/pam.d/guacamole
    auth required pam_env.so
    auth sufficient pam_unix.so nullok try_first_pass
    account required pam_unix.so
    session required pam_limits.so
    session optional pam_systemd.so
    ```

    之后,将 tomcat 用户假如 root 用户组,并赋予文件 /etc/shadow 在组的读权限。

    ```shell
    usermod -aG root tomcat
    chmod g+r /etc/shadow
    ```
    julyclyde
        2
    julyclyde  
       Oct 22, 2025
    你看看 shadow 文件所属的 owner group 是哪个,你就把 tomcat 的运行用户加到那个里
    jayeli
        3
    jayeli  
    OP
       Oct 22, 2025
    @julyclyde 是的,目前就是这么做的。我其实是比较关心 PAM 文件的写法,不太熟悉。
    julyclyde
        4
    julyclyde  
       Oct 22, 2025
    @jayeli 屠龙之技
    现在没几个人学了
    mijazz
        5
    mijazz  
       Oct 22, 2025   1
    好久之前捣鼓过一个基于面部识别的 PAM ,项目还挺大的。可以参考下实现,说不定对你有帮助。它是多 distro 适配。

    https://github.com/boltgolt/howdy/tree/master/howdy/src
    julyclyde
        6
    julyclyde  
       Oct 23, 2025
    @mijazz 他问的是配置 PAM 不是开发 PAM 哦
    jayeli
        7
    jayeli  
    OP
       Mar 17
    记录一下最终的解决方案,使用 PAM proxy ,参考 ArchWiki https://wiki.archlinux.org/title/SSSD#PAM_proxy
    About     Help     Advertise     Blog     API     FAQ     Solana     1019 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 22:28 PVG 06:28 LAX 15:28 JFK 18:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86