首页 > 其他分享 >Authentication token manipulation error

Authentication token manipulation error

时间:2024-10-31 16:20:05浏览次数:3  
标签:passwd token auth system etc Authentication so error pam

# 添加密码

echo "dolphinscheduler" | passwd --stdin dolphinscheduler

创建用户后,给dolphinscheduler添加密码时,出现错误

Authentication token manipulation error 


原因分析>>>>>>>>>

[root@dev2-bu----1 ~]# lsattr /etc/passwd /etc/shadow 
-------------------- /etc/passwd 
-------------------- /etc/shadow  

这是默认的配置,所以执行下面的命令,去除i没用;

[root@dev2-bu----1 ~]# chattr -i /etc/shadow

[root@dev2-bu----1 ~]# chattr -i /etc/passwd

解决思路>>>>>>>>>

查看log,定位报错

tail -f /var/log/messages

Oct 30 17:06:01 dev2-bu----1 audit[146509]: USER_CHAUTHTOK pid=146509 uid=0 auid=0 ses=502 msg='op=PAM:chauthtok grantors=? acct="dolphinscheduler" exe="/usr/bin/passwd" hostname=dev2-bu----1.novalocal addr=? terminal=pts/1 res=failed'

其中 grantors=? 表示没有任何 PAM 模块成功授权更改认证令牌。这通常是由于 PAM 配置文件损坏或不完整导致的

以下是详细的排查和解决步骤>>>>>>>>>

1. 恢复 /etc/pam.d/passwd 的默认配置

/etc/pam.d/passwd 文件缺少了 authaccount 模块的配置,这些配置对于 passwd 命令的正常运行是必要的。标准的 /etc/pam.d/passwd 文件内容应如下:

#%PAM-1.0
auth       include      system-auth
account    include      system-auth
password   substack     system-auth
password   substack     postlogin
password   optional     pam_gnome_keyring.so use_authtok

操作步骤:

cp /etc/pam.d/passwd /etc/pam.d/passwd.bak
vi /etc/pam.d/passwd

保存并退出编辑器。

2. 恢复 /etc/pam.d/system-auth 的默认配置

/etc/pam.d/system-auth 文件中存在非标准的配置,例如 auth required pam_kysec.so,这可能导致认证过程出现问题。

操作步骤:

  • 备份原始文件:
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
  • 使用 authconfig 命令重新生成 PAM 配置文件:
authconfig --updateall

或者,如果 authconfig 命令不可用,可以手动编辑 /etc/pam.d/system-auth,将其内容替换为默认配置。标准的 /etc/pam.d/system-auth 文件内容如下(以 CentOS 7 为例):

#%PAM-1.0
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_sss.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session    optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so
  • 保存并退出编辑器。

3. 检查并确保 PAM 模块存在

确保 PAM 相关的模块(例如 pam_unix.sopam_deny.so 等)存在于系统中。执行以下命令:

ls -l /lib64/security/pam_unix.so
ls -l /lib64/security/pam_deny.so

如果这些文件不存在,可能需要重新安装 PAM 软件包:

yum reinstall pam -y

4. 重启相关服务

某些情况下,可能需要重启系统或相关服务,以确保配置生效。

reboot

这时候再执行

echo "dolphinscheduler" | passwd --stdin dolphinscheduler

bingo~~~~成功添加  

标签:passwd,token,auth,system,etc,Authentication,so,error,pam
From: https://blog.csdn.net/2301_76636891/article/details/143404866

相关文章