Назад | Перейти на главную страницу

Измените локальный пароль как root после настройки для MS-AD Kerberos + LDAP

Я следил за этим отличным постом, чтобы настроить 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

Обновление 1 2013-01-31:

# 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