Можно ли воссоздать функциональность pam_userdb.so, чтобы приложение аутентифицировало виртуальных пользователей (действительно только для одной конкретной службы) в Solaris?
Ситуация такова: начальство предписало нам использовать инструмент распространения файлов, который поддерживает только аутентификацию на основе пароля и передает пароли в открытом виде. Из-за большого объема передаваемых данных использование SSL-туннелей нецелесообразно.
Приложение поддерживает память, поэтому мы можем настроить для него специальный стек аутентификации. На наших серверах linux мы настраиваем pam_userdb на использование отдельной базы данных passwd, чтобы никто не мог использовать пароль для прямого входа в систему:
someapp auth sufficient pam_userdb.so db=/etc/someapp-passwd try_first_pass
Похоже, на Solaris нет эквивалента.
Вы пробовали взять исходный код pam_userdb для модуля, который вы используете в Linux, и собрать его в Solaris? Весь смысл PAM в том, чтобы позволить вам подключать дополнительные модули, в том числе те, которые не поставляются с системой.
Вы просто пытаетесь разрешить аутентификацию, но не разрешаете вход в оболочку? Вы можете сделать это, изменив оболочку пользователя на что-то, что просто отбрасывает его. Вы также можете зарегистрировать попытку, чтобы убедиться, что никто не пытается злоупотребить учетной записью.
Вы можете использовать pam в Solaris, но мой опыт до сих пор был чистым, в вашем случае было бы неплохо просто использовать аутентификацию на основе Kerberos или yp, чтобы вы также могли совместно использовать общую базу данных пользователей между этими серверами, чтобы сохранить вещи в очереди.