Какое имя службы PAM использует useradd?
В названии сказано все, но чтобы показать, что я провел исследование, скажу, что вчера я провел почти половину дня, пытаясь найти ответ на этот вопрос.
Я столкнулся с одной страницей, где было предложено, что системная аутентификация используется useradd
Но кроме этого утверждения я не увидел там ничего убедительного.
Конечно, я могу использовать PAM для аутентификации данного пользователя программой, использующей pam_start( "system-auth" ) ;
, но как насчет добавления пользователя.
Что если я захочу использовать Active Directory или LDAP не только для доступа к моему серверу Linux, но и для активного добавления с этого сервера Linux (как root) новых пользователей?
Было бы просто useradd jerry
работал? Откуда он знает, что нужно добавить Джерри в LDAP, а не в /etc/passwd и /etc/shadow?
Лучше всего будет сослаться на статью, которую я мог бы прочитать, а не на мнение "я думаю, что системная аутентификация хороша" или "вам лучше использовать имя службы passwd"
Заранее спасибо! - Грег.
1 ответ
Какое имя службы PAM использует useradd?
Он вообще не использует PAM для поиска службы аутентификации системы. Единственное, для чего используется PAM - это аутентификация пользователя, который звонит. useradd
(не создаваемая учетная запись пользователя). И это происходит только в том случае, если он был скомпилирован с использованием setuid и PAM.
как насчет добавления пользователя
PAM не обращается к управлению пользователями или группами (вводящее в заблуждение название pam_acct_mgmt
несмотря на это), только аутентификация.
Что делать, если я хочу использовать Active Domain
Предполагая, что вы имеете в виду Active Directory, который использует комбинацию LDAP и Kerberos, но PAM не работает с Kerberos.
или LDAP
Вам придется использовать ldapadd
или какой-либо другой LDAP-осведомленный инструмент.
Лучше всего будет ссылка на статью, которую я мог бы прочитать
Я могу дать вам исходный код по крайней мере. От src/useradd.c
Вы можете следить за звонком pw_update
, который определен в lib/pwio.c
и увидеть, что глобальный passwd_db
настроен с макросом PASSWD_FILE
, который по умолчанию в lib/defines.h
в /etc/passwd
, Есть похожие пути кода, соединяющие его с /etc/shadow
, /etc/group
, а также /etc/gshadow
,