Linux 技术手札

Shell Script 修改系统帐号密码

在 Linux 要修改帐号密码, 可以用 passwd 完成。passwd 需要从 stdin 输入新密码, 但很多情况需要用非互动的方式修改, 即一行指令修改密码。例如用 Shell Script 建立新帐号后, 立即修改新用户的密码。

以下会示范不用从 stdin 输入新密码的情况下, 用一行指令修改帐号密码的方法。

版本较新的 Linux 的 passwd 指令, 支援 –stdin 参数, 即不会要求输入两次新密码作为确认, 这样只要用 echo 指令将新密码, 透过管线 (即 “|” 字符) 传送给 passwd 指令即可, 例如:

以上指令会修改帐号 newuser 的密码, 改成 new_password

但在一些较旧的系统, 当输入 passwd 指令修改密码时后, 系统会弹出输入两次新密码的提示, 两次输入的新密码用 “Enter” 分隔。这时可以用 echo 加上 -e 参数, 模拟 “Enter” 键, 再用管线传送给 passwd 指令, 例如:

以上指令同样会会修改帐号 newuser 的密码, 改成 new_password

另一个方法是使用 chpasswd 指令, chpasswd 可以透过读取预先建立的帐号密码文字档, 实现大量修改帐号密码, 但同样可以过管线修改个别帐号密码, 指令语法是:

Exit mobile version