如何高效的在 Linux 环境下修改用户密码?

科技   2025-01-04 06:40   江苏  

使用 passwd 命令

Linux系统中,passwd是修改用户密码最常用的命令。当我们以root身份登录系统时,如果只是单独执行passwd命令,则是修改root用户的密码。如果执行passwd 普通用户名 命令,则是修改普通用户的密码,但无需输入普通用户的旧密码。

[root@localhost ~]# passwd jacktian
更改用户 jacktian 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

当我们以普通用户身份登录系统时,如果要修改普通用户的密码,需要在终端中输入passwd命令,按照提示先输入旧密码,然后在输入你所要修改后的新密码。

[jacktian@localhost ~]$ passwd
更改用户 jacktian 的密码 。
为 jacktian 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

新密码的长度和复杂度通常有一定要求。不同的 Linux 发行版可能有不同的规定,但一般来说,密码长度至少为 6 - 8 位,并且包含字母、数字和特殊字符的组合可以提高密码的安全性。同时,两次输入的新密码必须一致,否则密码修改会不成功。

使用 chpasswd 命令

chpasswd命令可以从标准输入读取用户名和密码对(格式为用户名:密码),并批量修改密码。例如,你可以将用户名和密码信息保存在一个文件(如passwords.txt)中,文件内容格式如下:

user1:newpasswd1
user2:newpasswd2

然后在终端中使用以下命令进行批量修改:

cat /home/jacktian/passwords.txt | chpasswd

这个文件中的用户名和密码,都是事先编辑好的。因为密码是以明文形式存在该文件中。通常建议只有 root 用户能够读取这个文件,并且在使用完毕后及时删除或妥善保存。

这种修改密码的方式适用于需要同时修改多个用户密码的情况下,如系统管理员在创建或重置一批用户账号密码时使用。

除此之外,我们也可以使用如下命令的方式,以非交互式的进行针对单个用户进行修改密码,避免重复输入多次密码。

echo "user:newpasswd" | chpasswd

使用 usermod 命令

使用openssl工具生成加密后的密码,这里将生成一个加密后的密码字符串,其中newpassword是你需要设置的新密码。

openssl passwd -1 -salt $(date +%s) newpassword

上述,这条命令的作用是:使用当前时间的Unix时间戳作为盐值,对newpassword这个密码进行MD5加密,并输出加密后的密码。

输出的加密密码格式通常是这样的:

$1$<salt>$<encrypted_password>

其中<salt>是你指定的盐值(在这个例子中是 Unix 时间戳的字符串形式),<encrypted_password>是使用MD5算法和盐值加密后的密码。这种格式允许系统在验证密码时能够识别出加密时使用的盐值和算法。

将加密后的密码字符串传递给usermod命令的-p选项来更新密码。

usermod -p 'encrypted_password' username

encrypted_password是上一步生成的加密密码字符串,username是你想要修改密码的用户名。

以上,出于安全考虑,不建议在脚本或命令行中直接以明文形式包含密码。使用passwd命令是修改用户密码更安全的方法。遵循系统正常的密码修改流程,并确保了密码的安全性和完整性。

END




最后提一句,21ic论坛(bbs.21ic.com)正在招募原创作者,单篇文章奖励最高500元,欢迎广大网友踊跃投稿! 点击了解活动详情

温馨提示:

因最近微信公众平台推送规则改变,很多读者反馈没有及时看到更新的文章。根据最新规则,建议多点击“推荐阅读、分享、收藏”等,成为常读用户。


推荐阅读:


请点下【在看】给小编加鸡腿



21ic电子网
即时传播电子科技信息,汇聚业界精英精彩视点。
 最新文章