概述:
su 可以切换到用户 user,执行时需要输入目标用户的密码
sudo 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码(在/etc/sudoers 中查看)
su - 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量
常用命令:
用户基本信息- /etc/passwd
记录用户的基本信息,每行代表一个用户
用户密码信息- /etc/shadow
记录用户密码相关信息,每行代表一个用户
每一行包含 9 个字段,用“:”分隔
只有 root 用户可以查看
用户组配置文件- /etc/group
记录用户组信息,每行代表一个用户组
每一行包含 4 个字段,用“:”分隔
新增用户-useradd
选项 | 功能说明 |
-d homedir | 指定用户的主目录,必须是绝对路径 |
-u uid | 指定用户的 UID |
-g gid | gname | 指定用户主组的 GID 或组名,必须是已经存在的组 |
-G groups | 指定用户的附加组,如果有多个附加组就用“,”分隔 |
-m | 强制建立用户的主目录,这是普通用户的默认值 |
-M | 不要建立用户的主目录,这是系统用户的默认值 |
-s shell | 指定用户的默认 Shell |
-c comment | 关于用户的简短描述,也就是 /etc/passwd 第 5 列的内容 |
-r | 创建一个系统用户(UID 在 1000 以内) |
-e expiredate | 指定账号失效日期,即 /etc/shadow 的第 8 列,格式为YYYY-MM-DD |
-f inactive | 用户密码到期后的宽限天数,即 /etc/shadow 的第 7 列。 0 表示立即失效,-1 为永远不失效 |
[root@localhost ~]# useradd niu //新增用户niu
[root@localhost ~]# grep niu /etc/passwd //在 /etc/passwd 文件中新增一行与新用户相关的数据
niu:x:1001:1001::/home/niu:/bin/bash
[root@localhost ~]# grep niu /etc/shadow //在 /etc/shadow 文件中写入一行与新用户相关的密码数据
niu:!!:19112:0:99999:7:::
[root@localhost ~]# grep niu /etc/group //在 /etc/group 文件中新增一行与新用户同名的用户组
niu:x:1001:
[root@localhost ~]# ls -ld /home/niu //在 /home 目录下创建与新用户同名的目录作为新用户的主目录
drwx------. 3 niu niu 78 4月 30 10:14 /home/niu
设置用户密码-passwd
选项 | 功能说明 |
-l | 锁定用户,即“lock”。在 /etc/shadow 的第一列前加“!”使密码无效,只有 root 用户可以使用这个选项 |
-u | 解锁用户,即“unlock”,作用与-l选项相反,只有 root 用户能够使用 |
-S | 查询用户密码的相关信息,也就是 /etc/shadow 文件的内容 |
-n mindays | 密码修改后多长时间内不能再修改密码,即 /etc/shadow 第 4 列的内容 |
-x maxdays | 密码有效期,即 /etc/shadow 第 5 列的内容 |
-w warndays | 密码过期前的警告天数,即 /etc/shadow 第 6 列的内容 |
-i inactivedays | 密码失效日期,即 /etc/shadow 第 7 列的内容 |
-c comment | 关于用户的简短描述,也就是 /etc/passwd 第 5 列的内容 |
[root@localhost ~]# passwd niu // 以root用户身份修改zys用户的密码
更改用户 niu 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
用户修改自己的密码:
注意:普通用户修改密码有三点不同
第一,普通用户只能修改自己的密码
第二,普通用户修改密码前必须输入原密码
第三,普通用户设置的密码必须满足密码复杂性要求
[niu@localhost ~]$ passwd // 为自己修改密码
更改用户 niu 的密码 。
为 niu 更改 STRESS 密码。
(当前)UNIX 密码: //在这里输入原密码
新的 密码: //在这里输入新密码
无效的密码: 密码少于 8 个字符 //新密码不满足复杂性要求
新的 密码: //重新输入新密码
重新输入新的 密码: //再次输入新密码
passwd:所有的身份验证令牌已经成功更新。
修改用户信息-usermod
用法和 useradd 非常类似!
删除用户-userdel
[root@localhost ~]# userdel -r niu 删除用户shaw,并删除用户主目录
[root@localhost ~]# grep niu /etc/passwd
[root@localhost ~]# grep niu /etc/shadow
[root@localhost ~]# grep niu /etc/group
[root@localhost ~]# ls -d /home/niu
ls: 无法访问/home/niu: 没有那个文件或目录 //用户主目录一同被删除
创建用户组 - groupadd 命令
使用 -g 选项手动指定用户组ID
[root@localhost ~]# groupadd niuniu // 新增用户组
[root@localhost ~]# grep niuniu /etc/group //在/etc/group文件中添加用户组信息
niuniu:x:1001:
修改用户组信息 - groupmod 命令
功能:修改用户组信息(不建议更改)
使用 -g 选项修改GID
使用 -n 选项修改组名
[root@localhost ~]# grep niuniu /etc/group
niuniu:x:1001: // 原GID为1001
[root@localhost ~]# groupmod -g 1100 niuniu // 修改GID
[root@localhost ~]# grep niuniu /etc/group
niuniu:x:1100: // GID已修改为1100
[root@localhost ~]# groupmod -n niuu niuniu //修改组名
[root@localhost ~]# grep niuu /etc/group
niuu:x:1100: //组名已修改为niuu
删除用户组 - groupdel 命令
不能删除用户的主组!
[root@localhost ~]# grep niuu /etc/group //查找用户组niuu
niuu:x:1100:
[root@localhost ~]# groupdel niuu //删除用户组niuu
[root@localhost ~]# grep niuu /etc/group //删除成功
[root@localhost ~]# groupdel an //删除主组
groupdel:不能移除用户“an”的主组
id 和 groups 命令
id 命令功能:查看用户的 UID、GID 和附加组信息
groups 命令功能:显示用户的组信息,与 id -Gn 命令效果相同
[root@localhost ~]# id an //查看an用户的相关信息
uid=1000(an) gid=1000(an) 组=1000(an)
[root@localhost ~]# groupadd wei
[root@localhost ~]# usermod -G wei an // 将an用户添加到wei组中
[root@localhost ~]# id an
uid=1000(an) gid=1000(an) 组=1000(an),1001(wei)
[root@localhost ~]# groups an //查看用户组信息
an : an wei
groupmems 命令
功能:把用户添加到或移出用户组
选项 | 功能说明 |
-a username | 把用户添加到组中 |
-d username | 从组中移除用户 |
-g grpname | 目标用户组 |
-l | 显示组成员 |
-p | 删除组内所有用户 |
[root@localhost ~]# groupmems -lg wei // 查看用户组内有哪些用户
an
[root@localhost ~]# groupmems -d an -g wei // 从wei组中移除用户an
[root@localhost ~]# groupmems -lg wei //用户组wei为空
[root@localhost ~]#
newgrp 命令
功能:修改用户的有效组,作为创建文件的属组
[root@localhost ~]# groupmems -a an -g wei // 向wei组中添加用户an
[root@localhost ~]# groupmems -lg wei
an
[root@localhost ~]# su an
[an@localhost root]$ cd ~
[an@localhost ~]$ cd 20220430
[an@localhost 20220430]$ groups an // 当前登录用户是an
an : an wei // 主组是an,同时属于附加组wei
[an@localhost 20220430]$ touch a
[an@localhost 20220430]$ newgrp wei // 设置devteam为有效用户组
[an@localhost 20220430]$ touch b
[an@localhost 20220430]$ ls -l
总用量 0
-rw-rw-r--. 1 an an 0 4月 30 11:23 a // a的属组是an
-rw-r--r--. 1 an wei 0 4月 30 11:24 b // b的属组是wei
总结: