linux - 我想使用 Radius 对用户进行身份验证,但将所有成功的用户放在同一个主目录中,并使用相同的 shell 替换

标签 linux docker user-profile pam radius

我试图允许在 Radius 中定义 ssh 用户,但共享一个主目录、shell 等。这个想法是所有用户共享相同的主目录和默认 shell(一个应用程序)。我想避免在本地机器(实际上是一个 docker 容器)上创建大量帐户,因为它们的事件受到应用程序的限制。我认为我只需要替换用户数据库信息,但我不明白如何只覆盖登录事件的那一部分。有没有其他人这样做过,或者我应该以不同的方式解决这个问题?

最佳答案

好的,我要回答我自己的问题。如果您有更好的信息,请贡献。这个问题在 ServerFault 中可能更好,但作为一名程序员,我在 StackOverflow 上花费的时间更多,所以我没有想到这一点。 PAM 库对于单点登录很有用,但不能替代/etc/passwd 文件和相关文件。 PAM 和它带来的其他 Assets 补充了内部 Linux 信息。因此,虽然您可以使用像 Radius 这样的远程服务器进行身份验证,但/etc/passwd 中仍然会有条目。控制流是 pam.conf 中的一个规则列表,顶层库按照列表的方式工作,让每个模块(插件)完成它的工作。阅读 'man pam.conf' 和 'man pam_mkhomedir' 以获得有关其工作原理的详细信息。 一个模块实现 6 个功能,因此添加新模块非常容易。请参阅 pam_deny.c 了解最简单的模块。 此外,getpwnam 是您在尝试执行任何操作时可能需要的功能。您可以使用“man getpwnam”阅读相关内容,但您可能已经知道了。

关于linux - 我想使用 Radius 对用户进行身份验证,但将所有成功的用户放在同一个主目录中,并使用相同的 shell 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49198069/

相关文章:

python - 使用 python 运行 crontab

mysql - 来自docker容器的持久mysql数据

node.js - 如何减少我的 Docker Image 大小以进行部署?

javascript - 在 HTML 和 CSS 的表单中添加个人资料图片

linux - 让应用程序签署文档,但不要让它看到 key

linux - elf-loader如何知道stderr和stdout的地址

linux - 期望脚本处理 RSA 指纹 key

docker - 使用 docker compose 运行解析服务器

Azure B2C EditProfile 自定义策略,无需先登录

windows - 使用变量后 PowerShell 命令失败