错误:您需要立即更改密码(root强制执行)

时间:2015-11-19 12:09:29

标签: linux passwords

我试图在linux机器上添加新用途。 我用过这个命令。

adduser "user_name" -u "UID" -G "GROUP_NAME"

在/ etc / shadow中看到的条目是

"user_name":$1$IfBL9BXC$ealgUJum3HJsDRqOUY74O1:0:0:99999::::

但是当我尝试使用相同的用户名登录时,我的密码被接受,但立即要求我更改密码,如下所示。

You are required to change your password immediately (root enforced)  

我该怎么办?

3 个答案:

答案 0 :(得分:5)

对于任何在处理此事时遇到此问题的人。 DigitalOcean机器以这种方式设置,并且不想手动修复它,因为它们无论如何都自动部署并且只使用publickey认证,这是一个Ansible任务来解决这个问题:

# http://docs.ansible.com/ansible/lineinfile_module.html
# Get rid of DO's root password and 'you must change next time you login' stuff
- name: Setup root account properly
  lineinfile:
    backup: yes
    dest: /etc/shadow
    regexp: "^root:.*$"
    state: present
    line: "root:*:16231:0:99999:7:::"

答案 1 :(得分:1)

对于我来说,我想在创建Droplet实例时在指定的用户数据中非交互地安装MySQL 8.0,它显示错误You are required to change your password immediately (root enforced)

我的解决方案基于unilynx的答案,但不需要Ansible(因为在Ansible运行主机中的任务之前先运行用户数据)

sed -i 's/^root:.*$/root:*:16231:0:99999:7:::/' /etc/shadow

这样,root帐户被禁用了登录,但是我没有收到上面提到的错误。

答案 2 :(得分:0)

最好的办法是按要求更改密码。

/etc/shadow文件中的第三个字段表示自上次更改密码以来的天数(自1970年1月1日起)。空值表示密码从未更改,值0强制用户更改密码。

作为替代方案,您可以修改/etc/shadow文件并从第三个字段中删除0。但这样做需要您自担风险。