![如何配置 /etc/pam.d/sshd 和 nsswitch.conf 以避免本地用户对 ssh 的所有远程调用?](https://linux22.com/image/198494/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20%2Fetc%2Fpam.d%2Fsshd%20%E5%92%8C%20nsswitch.conf%20%E4%BB%A5%E9%81%BF%E5%85%8D%E6%9C%AC%E5%9C%B0%E7%94%A8%E6%88%B7%E5%AF%B9%20ssh%20%E7%9A%84%E6%89%80%E6%9C%89%E8%BF%9C%E7%A8%8B%E8%B0%83%E7%94%A8%EF%BC%9F.png)
我创建了一个 NSS 和一个 PAM 模块,以便从自定义远程服务器进行身份验证并获取用户和组。
为了让系统使用它们,我在以下位置添加一行/etc/pam.d/sshd
:
auth sufficient myPAMmodule.so
并在/etc/nsswitch.conf
:
passwd: files sss myNSSmodule
shadow: files sss myNSSmodule
group: files sss myNSSmodule
问题是如何配置这些(或其他任何内容)以避免在使用本地用户进行 ssh 时调用我的模块。
在我的模块之前添加一个足够的linux模块
auth sufficient pam_env.so
看来有必要。通过在没有我的模块的情况下添加 initgroups 行
initgroups: files sss
使 id 命令仅在本地用户本地工作(但仅获取用户的主要组)。
但每当我执行时,ssh user@localhost
我仍然看到本地用户的远程调用。