Я хочу, чтобы пользователи могли использовать мои учетные данные приложения rails для входа в учетную запись sftp. Если я правильно понимаю, мне нужно как-то использовать для этого PAM. Но я не нашел информации, как это сделать?
Вы можете написать свой собственный модуль PAM, если хотите. Но другое решение, вероятно, лучше. Ознакомьтесь с примером модуля PAM здесь: http://www.freebsd.org/doc/en/articles/pam/pam-sample-module.html
pam_exec может проверять пароли с помощью внешней программы.
Если эта информация о рельсах находится в базе данных mysql, вы можете настроить pam_mysql. Есть модули pam практически для всего.
Вот один для ftp, который у меня есть с mysql:
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. Есть множество вариантов.