Измените локальный пароль как 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

5 ответов

В вашем /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! (Это именно та ошибка, которая привела меня сюда.)

Косвенный способ сделать это. Использоватьmkpasswdдля генерации зашифрованного пароля:

      mkpasswd --method=sha-512

Затем используйтеusermodчтобы изменить пароль пользователя:

      usermod -p '<encrypted_password_from_mkpasswd>' <username>

Если ваши пользователи используют пароль Kerberos, вы можете удалить управление паролями Kerberos из PAM, потому что пароль Kerberos можно изменить с помощью команды kpasswd

Не нужно устанавливать что-либо дополнительно или изменять настройки PAM, чтобы изменить локальный пароль.

sudo usermod -p "$(echo "password" | openssl passwd -stdin -6)" user

The -6означает шифрование SHA512, для некоторых старых Linux-систем вам может потребоваться заменить его на-1или-5.

Ссылка: https://www.mkssoftware.com/docs/man1/openssl_passwd.1.asp .

Другие вопросы по тегам