首页 > 解决方案 > 如何在 PAM 之后而不是在重新映射用户之前告诉 SSH 到 setuid

问题描述

我正在研究由 PAM 模块和 NSS 模块组成的半径身份验证解决方案。

流程是这样的:

现在,我的问题如下。OpenSSH 服务器将在 PAM 之前读取 NSS。

这意味着流程是这样的:

现在这个错误只在第一次登录时发生,因为在第二次登录时 NSS 将缓存数据并在第一次调用时返回正确的用户。

但这仍然是一个问题,首先因为我不希望每次第一次登录都落到错误的用户身上,其次如果ben删除了管理员权限,由于我的 NSS 缓存,他的下一次登录仍然会通过 SSH 映射到管理员NSS 模块。

我无法在第一次 NSS 调用中查询映射,因为从 radius 查询映射需要成功登录。

我有一些线索,但我真的很想对这个问题有所了解。

我的线索是:

标签: linuxsshpam

解决方案


I ended up changing the shell for the user to a setuid wrapper that drop privileges to the intended user.

Code is here: https://github.com/kuon/radius-auth-virtual


推荐阅读