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