计算机网络/计算机科学与应用/系统/运维/开发

Linux【passwd】用户账号设置密码

useradd 命令创建用户账号,必须要设置密码才能登录

设置密码使用 passwd指令

(root用户,可以在命令后面直接加上用户名,为用户设置密码)


语法:

passwd  [选项] [选项参数] [用户名]


选项:

-d清空密码;
-l锁定用户账号;
-u解锁用户账号


实例:为用户user1设置密码

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。


注意事项:

根据Linux密码验证规则,一般不允许设置简单密码,但是root账号可以为普通用户设置简单密码,如果是普通用户创建简单密码则无法通过,密码创建规则如下:


不能与用户账号相同
长度在6位以上
建议不要使用字典里面出现的单词或一些相近的词汇
建议包含英文大小写字母、数字和符号这些字符


实例:清除用户user1的密码

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# passwd -d user1
清除用户的密码 user1。
passwd: 操作成功


注意:用户的密码被清除之后,无须使用密码就可以在本地登录,但远程登录时始终是需要密码的。


“-l”选项,锁定用户账号


实例:锁定用户user2的账号

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# passwd -l user2
Locking password for user user2.
passwd: Success


锁定账户后,会对/etc/shadow文件进行改动

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# grep user2 /etc/shadow
user2:!!:18977:0:99999:7:::

(用户密码锁定之后,shadow文件中用户的密码串前多了“!!”。此时使用user2账号登录,将会被拒绝)


“-u”选项,解锁用户账号


[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# passwd -u user2
Unlocking password for user user2.
passwd: Warning: unlocked password would be empty.
passwd: Unsafe operation (use -f to force)


此时,通过-f强制解锁,可能是因为之前切换过用户模式

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# passwd -uf user2
Unlocking password for user user2.
passwd: Success
解锁成功后,就可以登录了


注意:在/etc/passwd文件中,在相应的用户行前面加上“#”或“*”将该行注释,也同样起到禁用该用户的作用


“--stdin”选项,从文件或管道读取密码

由于在用passwd命令设置或修改密码时,需要用户反复进行确认,而这很难符合自动化运维的需要,

因此,在实践操作中,经常使用“--stdin”选项与管道符配合,从而自动化地完成密码设置。


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


/etc/passwd 命令 是一个文本文件,任何用户都可以读取文件内容

passwd 文件开头部分:包括超级用户root及各程序用户的账号信息

系统新增的用户信息将保存在passwd文件末尾

passwd 每行对应一个用户,每行各列用英文冒号 “:”分割


用户名:密码:UID:GID:注释性描述:家目录:默认shell

[root@iZ2zea4u8pasyhtllbo54oZ tmp]# grep "^root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
第一个字段 root:用户名是root
第二个字段x:密码占位符,密码文件保存在:/etc/shadow 
第三个字段:用户UID rootUID默认为0
第四个字段:用户所属组的GID 需注意 GID指基本组,root组的GID默认为0
第五个字段:用户注释,可以不设置
第六个字段:用户家目录,即用户登陆后所在的默认工作目录
第七个字段:用户登陆所用的shell类型,默认为/bin/bash  程序用户的默认shell 为/sbin/nologin 意味不允许登陆

所有用户都可以访问/etc/passwd文件内容,但只有root才能更改


禁用用户账号

使用change命令可以改变用户密码的过期期限


语法:

change  [选项] 登录


选项:

-d,--lastday最近日期        将最近一次密码设置时间设为“最近日期”
        -E,--expiredate过期日期     将账户过期时间设为“过期日期”
        -h,--help                    显示此帮助信息并退出
        -I,--inactive INACITVE        过期INACTIVE天后,设定密码为失效状态
        -l,--list                      显示账户年龄信息
        -m,--mindays最小天数      将两次改变密码之间相距的最小天数设为“最小天数”
        -M,--maxdays最大天数      将两次改变密码之间相距的最大天数设为“最大天数”
        -R,--root CHROOT_DIR       chroot到的目录
        -W,--warndays警告天数     将过期警告天数设为“警告天数”



实例:禁止Bob用户登录

    [root@localhost ~]# date
        2019年 01月 20日 星期日 17:22:43 CST
        [root@localhost ~]# change -E 2018-12-31 Bob
        [root@localhost ~]# ssh Bob@127.0.0.1
        Your account has expired; please contact your system administrator
        Authentication failed.


passwd

只有惜缘,才有缘分;只有惜友,才有友谊。

评论

^