如何学习 Linux PAM? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
jayeli
V2EX    Linux

如何学习 Linux PAM?

  •  
  •   jayeli 1 天前 836 次点击

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

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

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

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

    6 条回复    2025-10-23 09:51:39 +08:00
    jayeli
        1
    jayeli  
    OP
       1 天前
    目前的解法是问 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  
       1 天前
    你看看 shadow 文件所属的 owner group 是哪个,你就把 tomcat 的运行用户加到那个里
    jayeli
        3
    jayeli  
    OP
       1 天前
    @julyclyde 是的,目前就是这么做的。我其实是比较关心 PAM 文件的写法,不太熟悉。
    julyclyde
        4
    julyclyde  
       1 天前
    @jayeli 屠龙之技
    现在没几个人学了
    mijazz
        5
    mijazz  
       1 天前   1
    好久之前捣鼓过一个基于面部识别的 PAM ,项目还挺大的。可以参考下实现,说不定对你有帮助。它是多 distro 适配。

    https://github.com/boltgolt/howdy/tree/master/howdy/src
    julyclyde
        6
    julyclyde  
       10 小时 8 分钟前
    @mijazz 他问的是配置 PAM 不是开发 PAM 哦
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3038 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:00 PVG 20:00 LAX 05:00 JFK 08:00
    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