“passwd”和“chpasswd”有什么区别?

met*_*ose 14 linux command-line

我从一本书passwd 中阅读了这些命令的描述

更改现有用户的密码。

密码:

读取登录名和密码对的文件,并更新密码。

这些命令似乎在做同样的工作。它们之间有区别吗?

编辑:

我想知道当我们使用它们时哪些文件会发生变化。他们更改相同的文件还是不同的文件?如果他们更改不同的文件,它们是什么?

Sau*_*ode 19

来自man chpasswd

“此命令旨在用于一次创建多个帐户的大型系统环境。”

passwd 是(根据我的经验)通常以交互方式用于单个用户。


小智 7

请参阅它们的手册页:

姓名

    chpasswd - 以批处理模式更新密码

概要

    chpasswd [选项]

描述

    chpasswd命令从标准输入读取用户名和密码对列表,并使用此信息更新一组现有用户。每行的格式如下:

    ?? 用户名密码


姓名

    passwd - 更改用户密码

概要

    passwd [选项] [登录]

描述

    passwd命令更改用户帐户的密码。普通用户只能修改自己账户的密码,而超级用户可以修改任何账户的密码。  passwd还会更改帐户或相关密码的有效期。


hee*_*ayl 7

简而言之:

  • passwd检查 STDIN(文件描述符 0)是否附加到终端,使用isatty(0). 如果没有,passwd将退出即您只能以passwd交互方式工作

  • chpasswd,另一方面,旨在从 STDIN 读取(用户名和)密码,并称为批处理模式(一次创建/更新多个用户凭据)。它从标准输入中读取密码(默认为明文)和用户名,以格式给出user_name:password,用换行符分隔条目