快速上手Linux核心命令(十一):Linux用户相关命令(三)
户有此权限 |
-n |
设置修改该密码的最短天数 。仅root用户有此权限 |
-x |
设置修改密码的最长天数。仅root用户有此权限 |
-w |
设置用户在密码过期前收到警告信息的天数。仅root用户有此权限 |
-i |
设置密码过期多少天后禁用账户。仅root用户有此权限 |
-S |
显示用户密码相关的简单描述。仅root用户有此权限 |
4、实践操作 ① 修改用户自身密码
[root@xiezhr ~]# passwd # 修改root用户自身密码
Changing password for user root.
New password: # 输入修改的密码,系统不会显示
Retype new password: # 再次输入密码
passwd: all authentication tokens updated successfully. # 设置成功了
② 设置及修改普通用户密码
[root@xiezhr ~]# passwd xiezhr
Changing password for user xiezhr.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
③ 显示账号密码信息
[root@xiezhr ~]# passwd -S xiezhr
xiezhr PS 2022-09-05 0 99999 7 30 (Password set, MD5 crypt.)
④一条命令修改密码
[root@xiezhr ~]# echo "123456"|passwd --stdin xiezhr
Changing password for user xiezhr.
passwd: all authentication tokens updated successfully.
⑤ 设置xiezhr用户7天内不能更改密码,60天以后必须修改密码,过期10天通知用户,过期30天后禁止用户登录
[root@xiezhr ~]# passwd -n 7 -x 60 -w 10 -i 30 xiezhr
Adjusting aging data for user xiezhr.
passwd: Success
chage 修改用户密码有效期
1、简介
chage 命令用于查看或修改用户密码有效期
2、语法格式
chage [参数选项] [用户名]
3 、参数选项
参数 |
参数说明 |
-d |
设置上一次密码更改的日期 |
-E |
账号过期的日期。日期格式:YYYY-MM-DD |
-I |
设置密码过期多少天后禁用账户 |
-l |
显示账号有效期信息 |
-m |
密码可更改的最小天数。默认为0,即任何时候都可以修改 |
-M |
密码保持有效的最大天数 |
-W |
密码到期前,提前收到警告信息天数 |
4、实践操作 |
|
设置xiezhr用户7天内不能更改密码,60天以后必须修改密码,过期10天通知xiezhr 用户,过期30天后禁止用户登录 |
|
[root@xiezhr ~]# chage -m 7 -M 60 -W 10 -I 30 xiezhr
批量更新用户密码
1、简介
chpasswd 命令用于从标准输入中读取一定格式的用户名、密码来批量更新用户的密码,格式为“用户名:密码“
2、语法格式
chpasswd [参数选项]
3、参数选项
参数 |
参数说明 |
-c |
默认格式是明文密码,使用-e参数则需要加密的密码 |
4、实践操作 |
|
批量修改密码 |
|
[root@xiezhr ~]# chpasswd # 输入chpasswd后,回车
xiezhr:123456 # 格式为用户名:密码
testxiezhr:123456 # 一行一个
# 新行按Ctrl+D 结束
su 切换用户
1、简介
su 命令用户将当前用户切换到指定用户或以指定用户的身份执行命令或程序
2、语法格式
su [参数选项] [用户名]
3、参数选项
参数 |
参数说明 |
-, -l, --login |
切换用户的同时,将用户的家目录/系统环境等重新按切换后的用户初始化 |
-c |
向Shell 传递单个命令 |
4、实践操作 ① 切换到普通用户
# 切换到testxiezhr用户,不用输入密码即可切换
[root@xiezhr ~]# su - testxiezhr
②切换到root用户
# 虽然已经切换到了root用户,但是家目录还是testxiezhr。环境变量还是testxiezhr用户的,**这种切换问题很严重**
[testxiezhr@xiezhr ~]$ su root
Password: # 普通用户切换到root用户需要输入密码
[root@xiezhr testxiezhr]# pwd
/home/testxiezhr
# 正确切换方式
[root@xiezhr testxiezhr]# exit
exit
[testxiezhr@xiezhr ~]$ su - root
Password: # 需要输入密码
Last login: Mon Sep 5 21:13:39 CST 2022 on pts/3
[root@xiezhr ~]# pwd
/root
注意: [x] "su 用户名" 虽然能切换到对应用户,但切换后的环境变量信息还是切换之前用户的 [√] ** ”su - 用户名“ 不但可以切换到对应用户,还能将环境变量一起切换**
visudo 编辑sudoers文件
1、简介
visudo命令是专门用来编辑 /etc/sudoers这个文件的,同时提供语法检查等功能。 /etc/sudoers文件是sudo命令的配置文件。sudo命令在下一个命令你会看到。而为什么不用vi/vim来直接编辑/etc/sudoers文件呢? 因为如果使用vim 编辑sudoer文件时没有语法校验,编辑错了会导致授权无法生效
2、语法格式
visudo [参数选项]
3、参数选项
4、实践操作 ①将xiezhr用户提权为root身份,testxiezhr 用户具有添加和删除用户的权限
# 以下命令相当于 vim /etc/sudoers 进行编辑sudoers文件
[root@xiezhr ~]# visudo
#在/etc/sudoers 文件中添加如下权限
xiezhr ALL=(ALL) ALL # 此行时将xiezhr用户提权为root身份
testxiezhr ALL=(ALL) /usr/sbin/useradd, /usr/sbin/userdel # 授予可以以root身份添加和删除用户权限
上面操作说明
待授权的用户或组 |
机器=(授权角色) |
可以执行的命令 |
testxiezhr |
ALL=(ALL) |
/usr/sbin/useradd,/usr/sbin/userdel |
② 通过-c参数校验语法是否正确 通过① 我们已经对xiezhr用户和testxiezhr用户做了不同的授权,那么怎么判断授权的语法是否正确呢
[root@xiezhr ~]# visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/90-cloud-init-users: par
|