Я следил за этим отличным постом, чтобы настроить Kerberos + LDAP:
http://koo.fi/blog/2013/01/06/ubuntu-12-04-active-directory-authentication/
Однако есть некоторые местные пользователи используется для услуг.
Когда я пытаюсь изменить пароль для одного из них, как root, он запрашивает Current Kerberos password
затем выходит:
passwd service1
Current Kerberos password: (I hit enter)
Current Kerberos password: (I hit enter)
passwd: Authentication token manipulation error
passwd: password unchanged
Если я переключусь на локального пользователя и сделаю passwd
, он один раз запрашивает Kerberos, а затем возвращается к локальному:
$ passwd
Current Kerberos password:
Changing password for service1.
(current) UNIX password:
Моя конфигурация аналогична сайту, который я опубликовал выше, и все работает нормально, я просто не могу изменить пароли локальных пользователей как root.
Заранее благодарю за любую помощь.
3.8.0-29-generic #42~precise1-Ubuntu
# cat /etc/pam.d/common-auth
auth [success=3 default=ignore] pam_krb5.so minimum_uid=1000
auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_cap.so
# cat /etc/pam.d/common-password
password [success=3 default=ignore] pam_krb5.so minimum_uid=1000
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_gnome_keyring.so
В вашем /etc/pam.d/common-password измените значение minimum_uid в первой строке на значение больше 1000, например:
password [success=3 default=ignore] pam_krb5.so minimum_uid=10000
Это сработало для меня. Это то, что вы должны увидеть в /var/log/auth.log после изменения пароля для этого пользователя как root:
Dec 26 12:34:36 3.8.0-29-generic passwd[22667]: pam_unix(passwd:chauthtok): password changed for service1
Ответ @ Ameer о редактировании common-password
правильно. Но: когда вы редактируете пределы uid для PAM в целом, не забывайте редактировать все затронутые файлы PAM! Если вы ищете krb5
в /etc/pam.d
, вы должны найти все соответствующие файлы:
root@server:/etc/pam.d# grep -R krb5 .
./common-auth:auth [success=2 default=ignore] pam_krb5.so minimum_uid=10000
./common-session-noninteractive:session optional pam_krb5.so minimum_uid=10000
./common-session:session optional pam_krb5.so minimum_uid=10000
./common-account:account required pam_krb5.so minimum_uid=10000
./common-password:password [success=2 default=ignore] pam_krb5.so minimum_uid=10000
Если, например, вы только редактировали common-auth
, но нет common-password
, аутентификация работает с локальными учетными записями, но passwd
все еще запрашивает текущий пароль кербероса! (Это именно та ошибка, которая привела меня сюда.)
если ваши пользователи используют пароль kerberos, вы можете удалить управление паролями kerberos из pam, потому что пароль kerberos можно изменить с помощью команды kpasswd