mattshma/bigdata

ubuntu 使用 kerberos 做认证后无法修改用户 password

mattshma opened this issue · 0 comments

由于镜像中的 hadoop client 使用了 kerberos 做认证,导致执行 passwd 修改用户密码时,需要输入 kerberos 密码,如下

root@23dfe76d0ee7:/# passwd jovyan
Current Kerberos password:
Current Kerberos password:
passwd: Authentication token manipulation error

这里测试了下,发现修改 root 密码是不需要 kerberos password,网上查了,通过如下方法可临时解决:修改 /etc/pam.d/common-password 的如下行:
password [success=2 default=ignore] pam_krb5.so minimum_uid=1000,将 minimum_uid 从 1000 改为大于用户的 uid 的值,如 10000 等即可。

参考 running_ssh_service , 在 Dockerfile 中完整变更 passwd 语句如下:

sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd && \
sed -i 's/minimum_uid=1000$/minimum_uid=10000/g' /etc/pam.d/common-password && \
echo "$NB_USER:$SSH_PASSWD" | chpasswd