AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1459072
Accepted
larsch
larsch
Asked: 2019-07-13 04:12:49 +0800 CST2019-07-13 04:12:49 +0800 CST 2019-07-13 04:12:49 +0800 CST

密码过期时的身份验证令牌操作错误(passwd --expire)

  • 772

在全新的 Arch Linux 安装中,我试图要求用户在首次登录时更改密码。我使用 使密码过期passwd --expire username,但用户无法再登录。显示此消息:

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

Authentication token manipulation error

几秒钟后,它返回到登录提示。

是什么原因导致此错误,是否可以修复以允许用户更改密码?

无论我设置密码还是删除密码,我都会得到相同的行为passwd --delete。

arch-linux login
  • 1 1 个回答
  • 1250 Views

1 个回答

  • Voted
  1. Best Answer
    funilrys
    2019-07-29T13:07:19+08:002019-07-29T13:07:19+08:00

    我对这种行为很好奇,所以我在我的机器上测试了它。

    再生产

    1. 我创建一个新用户

      # useradd -m -s /bin/bash test
      
    2. 我为它创建了一个虚拟密码

      # passwd test
      Geben Sie ein neues Passwort ein: 
      Geben Sie das neue Passwort erneut ein: 
      
    3. 测试我到目前为止在另一个终端所做的事情

      $ su - test
      Passwort:
      $ # I'm in.
      $ exit # I'm out.
      
    4. 回到我的根终端,我尝试做你所做的......

      # passwd --expire test
      passwd: Passwortablauf-Informationen geändert.
      
    5. 回到我的普通终端,我尝试连接新用户。

      $ su - test
      Passwort: 
      You are required to change your password immediately (administrator enforced)
      su: Fehler beim Ändern des Authentifizierungstoken
      

      有趣的是,我和你一样。

    去壳

    所以我很好奇所以我查看了手册

    # LC_ALL=en_US.UTF-8 man passwd  #Comment# LC_ALL is needed because otherwise, I get the manual in german.
    

    奇怪的是它说:

    -e, --expire
           Immediately expire an account's password. This in effect can force a user to change their password at the
           user's next login.
    

    我得出的结论是,所描述的行为不起作用是很奇怪的……


    据我所知pam.d,负责我在日志中查找它的登录。

    # journalctl -g pam -xe
    

    在日志中,我看到了以下内容。

    Jul 28 xx:xx:xx funilrys su[xxxxx]: pam_unix(su-l:auth): authentication failure; logname= uid=1000 euid=0 tty=pts/4 ruser=funilrys rhost=  user=test
    Jul 28 xx:xx:xx funilrys su[xxxxx]: pam_unix(su-l:account): expired password for user test (root enforced)
    Jul 28 xx:xx:xx funilrys su[xxxxx]: pam_warn(su-l:chauthtok): function=[pam_sm_chauthtok] flags=0x4020 service=[su-l] terminal=[pts/4] user=[test] ruser=[funilrys] rhost=[<unknown>]
    

    注意:当我登录时,使用su的su-l是服务。

    这意味着它pam.d可以正常工作,但它不处理密码更改。


    但我不相信,所以我用 SSH 进行了测试(我将 SSH 配置留给你)并且它起作用了。

    $ ssh -p xxxxx [email protected]
    Passwort: 
    You are required to change your password immediately (administrator enforced)
    Ändern des Passworts für test.
    Current password: 
    Geben Sie ein neues Passwort ein: 
    Geben Sie das neue Passwort erneut ein: 
    $ 
    

    我问自己,区别在哪里?

    我发现该/etc/pam.d/sshd文件有这一行

    password  include   system-remote-login
    

    因此,由于我的服务是su-l我将该行添加到/etc/pam.d/su-l

    然后再试一次。

    $ su - test
    Passwort: 
    You are required to change your password immediately (administrator enforced)
    Ändern des Passworts für test.
    Current password: 
    Geben Sie ein neues Passwort ein: 
    Geben Sie das neue Passwort erneut ein: 
    

    它奏效了!

    结论

    如果您将以下行添加到/etc/pam.d/login,/etc/pam.d/su-l或其他配置,具体取决于您使用的服务。用户将能够在下次登录时更改密码。

    password  include   system-remote-login
    

    推荐(编辑 1)

    在我的分析中,我经历了但在深入研究之后,我不得不承认即使system-remote-login有效,我们也应该避免它,因为它实际上是为 SSH 考虑的。

    因此,我建议遇到此问题的任何人将以下行(而不是)添加到或其他配置中/etc/pam.d/login,/etc/pam.d/su-l具体取决于您使用的服务。

    password  include   system-local-login
    
    • 1

相关问题

  • libinput 无法检测到触摸板

  • 更新到 android studio 3.4 后无法创建新项目。基于 Arch 的 Antergos Linux

  • Windows 10 帐户被锁定。如何解锁?(我有一个密码重设盘,但没有帮助)

  • 包含 AIF 的 Arch Linux 最新版本

  • MariaDB 在关机期间卡住时如何修复(等待 page_cleaner)?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve