更新 1 2013-01-31:

更新 1 2013-01-31:

我按照这篇优秀的文章来配置 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

答案1

在 /etc/pam.d/common-password 中,将第一行中的 minimum_uid 更改为大于 1000 的值,例如:

password        [success=3 default=ignore]      pam_krb5.so minimum_uid=10000

这对我来说很管用。在以 root 身份更改该用户的密码后,您应该在 /var/log/auth.log 中看到以下内容:

Dec 26 12:34:36 3.8.0-29-generic passwd[22667]: pam_unix(passwd:chauthtok): password changed for service1

答案2

@Ameer 关于编辑的回答common-password是正确的。但是:当您编辑 PAM 的 uid 限制时,不要忘记编辑所有受影响的 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 密码!(这正是导致我到这里的错误。)

答案3

一种间接的方法。用于mkpasswd生成加密密码:

mkpasswd --method=sha-512

然后使用usermod更改用户密码:

usermod -p '<encrypted_password_from_mkpasswd>' <username>

答案4

无需安装任何额外内容或修改 pam 设置来更改本地密码。

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

表示-6SHA512 加密,对于某些较旧的 Linux 系统,您可能需要将其替换为-1-5

参考:https://www.mkssoftware.com/docs/man1/openssl_passwd.1.asp

相关内容