【问题标题】:Error : You are required to change your password immediately (root enforced)错误:您需要立即更改密码(root 强制执行)
【发布时间】:2016-02-21 13:49:54
【问题描述】:

我正在尝试为 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)  

我该怎么办?

【问题讨论】:

    标签: linux passwords


    【解决方案1】:

    对于在处理例如处理时遇到此问题的任何人。以这种方式设置的 DigitalOcean 机器,不想手动修复这个问题,因为它们无论如何都会自动部署并且只使用公钥身份验证,这里有一个 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:::"
    

    【讨论】:

      【解决方案2】:

      在我的例子中,我想在创建 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帐户被禁用登录,但我没有收到我上面提到的错误。

      【讨论】:

        【解决方案3】:

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

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

        您也可以编辑/etc/shadow 文件并从第三个字段中删除0。但这样做需要您自担风险。

        【讨论】:

        • 谢谢..它有效,但它涉及什么样的风险??
        • 如果您错误地更改了此文件中的其他内容,您可以锁定您的用户。
        • 这是特定 Linux 发行版的默认行为吗?我在使用 ssh 到 CentOs 机器时得到它。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 2011-07-10
        • 2012-10-14
        • 1970-01-01
        • 2013-10-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多