使用passwd命令修改Linux系统中用户密码 您所在的位置:网站首页 然后改密码 使用passwd命令修改Linux系统中用户密码

使用passwd命令修改Linux系统中用户密码

2023-09-17 11:19| 来源: 网络整理| 查看: 265

命令格式

我们在上一小节中介绍了添加用户的命令,但是新添加的用户如果不没定密码是不能登录系统的,那么我们来学习一下密码设置命令passwd。

[root@localhost ~]#passwd [选项] 用户名 选项说明-s查询用户密码状态,也就是/etc/shadow文件中的内容。仅root用户可用-l暂时锁定用户,仅 root 用户可用-u解锁用户,仅 root 用户可用–stdin可以将通过管道符输出的数据作为用户的密码,主要在批量添加用户时使用 [root@localhost ~]#passwd #passwd直接回车代表修改当前用户的密码 root用户修改密码

下面举几个例子,我们给新用户lamp设定密码,让lamp用户可以登录系统。

[root@localhost ~]# passwd lamp Changing password for user lamp. ←更改用户lamp的密码。 New password: ←新的密码 BAD PASSWORD: The password is shorter than 8 characters ←无效的密码,密码需要对于8个字符; Retype new password: passwd: all authentication tokens updated successfully. ←所有的身份验证令牌已经更新成功。

注意,要想给其他用户设定密码,只有两种用户可行:一种是 root 用户;另一种是root通过sudo命令赋予权限的普通用户。也就是说,普通用户只能修改自己的密码,而不能设定其他用户的密码。

还要注意一件事,设定用户密码时一定要遵守“复杂性、易记忆性、时效性”的密码规范。简单来讲就是密码要大于8位,包含大写字母、小写字母、数字和特殊符号中的3种,并且容易记忆和定期更换。但是root用户在设定密码时却可以不遵守这些规则,比如我刚刚给lamp用户设定的密码是“123”,系统虽然会提示密码过短和过于简单,但是依然可以设置成功。不过普通用户在修改自己的密码时,一定要遵守密码规范。当然,在生产服务器上,就算是root身份,在设定密码时也要严格遵守密码规范,因为只有好的密码规范才是服务器安全的基础。

普通用户修改密码

那么我们看看普通用户lamp是如何修改密码的。

[lamp@localhost ~]$ whoami lamp #先看看我的身份 [lamp@localhost ~]$ passwd lamp1 passwd: Only root can specify a user name. #只有跟用户才能指定用户名称 [lamp@localhost ~]$ passwd lamp passwd: Only root can specify a user name. #只有跟用户才能指定用户名称 [lamp@localhost ~]$ passwd Changing password for user lamp. Changing password for lamp. (current) UNIX password: #put用户需要先输入自己的密码进行验证才能修改 New password: Retype new password: passwd: all authentication tokens updated successfully.

大家发现了吗?对普通用户来讲,密码设定就要严格得多了。首先,只能使用“passwd”来修改自己的密码,而不能使用“passwd 用户名”的方式。不过,如果你是root用户,则建议用“passwd 用户名”的方式来修改密码,因为这样不容易搞混。其次,在修改密码之前,需要先输入旧密码。

查看用户密码状态 [root@localhost ~]# passwd -S lamp lamp PS 2020-03-18 0 99999 7 -1 (Password set, SHA512 crypt.) #上面这行代码的意思是: #用户名 密码设定时间(2020-03-18) 密码修改间隔时间(0) 密码有效期(99999) 警告时间(7) 密码不失效(-1)

“-S”选项会显示出密码状态,这里的密码修改间隔时间、密码有效期、警告时间、密码宽限时间其实分别是/etc/shadow文件的第四、五、六、七个字段的内容。当然,passwd 命令是可以通过命令选项修改这几个字段的值的,不过我个人认为还是直接修改/etc/shadow文件简单一些。再次提醒一下,CentOS 6.3的加密方式已经从MD5加密更新到SHA512加密,我们不用了解具体的加密算法,只要知道这种加密算法更加可靠和先进就足够了。

锁定和解锁用户

使用passwd命令可以很方便地锁定和解锁某个用户,我们来试试。

[root@localhost ~]# passwd -l lamp Locking password for user lamp. passwd: Success #锁定用户 [root@localhost ~]# passwd -S lamp lamp LK 2020-03-18 0 99999 7 -1 (Password locked.) #用“-S”选项查看状态,很清楚的提示密码已被锁定 [root@localhost ~]# grep "lamp" /etc/shadow lamp:!!$6$p8pgSL7s$4VlSHi5MlMNqwul8HcCQ05WcYN3AhjWIrto4GHhzA4gYsQH.7OEBjSsH5Po5KOrnU.ligvKxNv8K0oz9Fn0uM/:18339:0:99999:7::: #其实锁定就是在加密密码之前加入了“!!”,让密码失效而已

可以非常简单的实现用户的暂时锁定,这时lamp用户就不能登录系统了。那么解锁呢?也一样简单,我们来试试。

[root@localhost ~]# passwd -u lamp Unlocking password for user lamp. passwd: Success #解锁用户 [root@localhost ~]# passwd -S lamp lamp PS 2020-03-18 0 99999 7 -1 (Password set, SHA512 crypt.) #锁定状态消失 [root@localhost ~]# grep "lamp" /etc/shadow lamp:$6$p8pgSL7s$4VlSHi5MlMNqwul8HcCQ05WcYN3AhjWIrto4GHhzA4gYsQH.7OEBjSsH5Po5KOrnU.ligvKxNv8K0oz9Fn0uM/:18339:0:99999:7::: #密码前面的"!!"删除了 使用字符串作为用户的密码

这种做法主要是在批量添加用户时,给所有的用户设定个初始密码。但是需要注意的是,这样设定这样设定的密码会把密码明文保存在历史命令中,会有安全隐患。所以,如果使用了这种方式修改密码,那么应该记住两件事情:第一,手工清除历史命令;第二,强制这些新添加的用户在第一次登录时必须修改密码(具体方法参考“chage”命令)。

[root@localhost ~]# echo "123" | passwd --stdin lamp Changing password for user lamp. passwd: all authentication tokens updated successfully.

命令很简单,调用管道符,让echo的输出作为passwd命令的输入,就可以把lamp 用户的密码设定为“123”了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有