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.