我想让用户使用我的 rails 应用程序的凭据登录 sftp 帐户。如果我理解正确的话,我应该以某种方式使用 PAM 来实现这一点。但我没有找到有关如何执行此操作的任何信息?
答案1
pam_exec可以使用外部程序验证密码。
答案2
如果需要,您可以编写自己的 PAM 模块。但另一种解决方案可能更好。在此处查看示例 PAM 模块:http://www.freebsd.org/doc/en/articles/pam/pam-sample-module.html
答案3
如果此 rails 信息位于 mysql 数据库中,则可以配置 pam_mysql。几乎所有东西都有 pam 模块。
下面是我使用 mysql 的 ftp 的一个示例:
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=fail
auth sufficient pam_mysql.so user=virt_admin passwd=PASS host=localhost db=DBNAME table=TABLENAME usercolumn=USERNAMECOL passwdcolumn=PASSCOL crypt=3
auth required pam_shells.so
auth include system-auth
account sufficient pam_mysql.so user=virt_admin passwd=PASS host=localhost db=DBNAME table=TABLENAME usercolumn=USERNAMECOL passwdcolumn=PASSCOL crypt=3
account include system-auth
session include system-auth
session required pam_loginuid.so
您还可以运行一个脚本,定期将用户名:密码转储到文件中并使用 pam_pwdfile。有很多选择。