Linux_07_用户管理
@
用户管理
用户管理:管理系统中用户(添加、删除和修改)
- Linux不支持匿名登录(必须通过已存在的用户访问系统)
 - 系统服务默认以用户身份运行,但不可登录(Shell为
/sbin/nologin) 
常用命令
(1)添加用户
useradd命令:创建用户
指令格式:useradd   选项   用户名
| 选项 | 含义 | 
|---|---|
| -u | 指定用户的UID (若不指定,默认为1000开始后未使用)  | 
| -g | 指定用户的初始组 (可通过用户组GID和组名指定)  | 
| -G | 指定用户的附加组 (可通过用户组GID和组名指定)  | 
| -c | 注释信息 | 
| -s | 指定用户的Shell解释器 (默认为/bin/bash)  | 
| -d | 指定用户的家目录 (默认在/home下创建用户同名目录)  | 
| -m | 创建用户家目录 (常搭配-d选项创建自定义家目录)  | 
| -r | 创建系统用户 (运行系统服务,不允许登录且无家目录)  | 
| -M | 不创建用户家目录 | 
| -n | 不创建用户同名的用户组 | 
| -e | 指定用户到期时间 (格式为:YYYY-MM-DD)  | 
- 用户可属于多个组,但有且仅有一个初始组(其他组只能为附加组)
 - useradd命令创建用户时会参考以下3个文件:
/etc/default/useradd、/etc/login.defs、/etc/skel 
例1:查看/etc/defalut/useradd文件
| 字段 | 说明 | 
|---|---|
| GROUP | 默认用户组 (CentOS不采用该设置)  | 
| HOME | 用户家目录的基准目录 | 
| INACTIVE | 密码过期后是否失效 (0代表立刻失效,-1代表永不失效)  | 
| EXPIRE | 账号的失效日期 | 
| SHELL | 默认Shell解释器 | 
| SKEL | 创建用户家目录的参考目录 | 
| CREATE_MAIL_SPOOL | 是否建立用户的mailbox | 
例2:查看/etc/skel和/etc/login.defs文件
(2)删除用户
userdel命令:删除用户
指令格式:userdel   选项   用户名
| 选项 | 含义 | 
|---|---|
| -r | 同时删除用户的家目录 (默认保留)  | 
| -f | 强制删除 | 
- 若用户已登录,则userdel命令会执行失败(可通过kill/killall命令关闭用户所有相关进程,再删除该用户)
 
(3)修改用户
usermod命令:修改已创建的用户
指令格式:usermod   选项   用户名
| 选项 | 含义 | 
|---|---|
| -g | 修改用户的初始组 | 
| -G | 修改用户的附加组 | 
| -u | 修改用户UID | 
| -l | 修改用户名 | 
| -d | 修改用户家目录 | 
| -c | 修改注释 | 
| -s | 修改Shell解释器 | 
| -e | 修改用户到期时间 | 
| -L | 锁定用户 | 
| -U | 解锁用户 | 
chsh命令:修改用户的默认Shell解释器
指令格式:chsh   选项   用户名
| 选项 | 含义 | 
|---|---|
| -s | 指定用户的默认Shell解释器 | 
| -l | 列出系统支持的所有Shell (读取/etc/shells文件内容)  | 
(4)管理用户密码
passwd命令:管理用户密码
指令格式1:passwd   选项   用户名
- 若无选项,则默认修改用户密码
 - 若无用户,则默认作用于执行该命令的用户
 
| 选项 | 含义 | 
|---|---|
| -f | 强制执行 | 
| -d | 删除密码 (后续登录无需输入密码)  | 
| -l | 锁定密码 (拒绝登录)  | 
| -u | 解锁密码 | 
| -S | 查询用户密码相关信息 | 
| -e | 强制用户下次登录需修改密码才可登录系统 | 
| --stdin | 将标准输入作为后续输入内容 | 
指令格式2:passwd 选项 用户名
| 选项 | 含义 | 
|---|---|
| -n N | N天之前不可修改用户密码 /etc/shadow文件的第4栏位  | 
| -x N | N天之内必须修改用户密码 /etc/shadow文件的第5栏位  | 
| -w N | 密码过期前N天警告用户 /etc/shadow文件的第6栏位  | 
| -i N | 密码过期N天后禁用用户 /etc/shadow文件的第7栏位  | 
| -S N | 列出用户密码的相关参数 | 
| --stdin | 将标准输入作为后续输入内容 | 
chage命令:管理用户密码
指令格式1:chage   选项   用户名
| 选项 | 含义 | 
|---|---|
| -l | 列出用户的密码参数 | 
| -d | 上一次修改密码的时间 修改/etc/shadow文件的第3栏位  | 
| -m | 两次密码相距的最小天数 修改/etc/shadow文件的第4栏位  | 
| -M | 两次密码相距的最大天数 修改/etc/shadow文件的第5栏位  | 
| -W | 密码过期时提起多少天警告 修改/etc/shadow文件的第6栏位  | 
| -I | 密码过期后多少天禁止用户 修改/etc/shadow文件的第7栏位  | 
| -E | 账号失效日期 修改/etc/shadow文件的第8栏位  | 
/etc/passwd
/etc/passwd:记录系统用户信息的文件,内容组成如下
用户名:密码:用户UID:初始组ID:注释:家目录:解释器Shell
| 字段 | 说明 | 
|---|---|
| 用户名 | 用户名称 (登录时输入)  | 
| 密码 | 占位符“x”代表 (真实密码默认记录在/etc/shadow)  | 
| 用户UID | 用户的唯一标识符 | 
| 初始组ID | 用户所属初始组的ID | 
| 注释 | 对用户的解释/备注 | 
| 家目录 | 用户登录系统后默认工作目录 | 
| 解释器Shell | 用户登录系统后默认使用的Shell解释器 | 
| UID范围 | ID特性 | 
|---|---|
| 0 (系统管理员) | 系统管理员 当拥有和root用户一样权限时,将该用户的UID改为0 | 
| 1~999 (系统账号) | 保留给系统使用的ID 用于启动部分系统服务,所以系统账号通常是不可登录 1~200:由Linux发行版自行建立的系统账号 201~999:用户建立系统账户可使用的ID | 
| 1000~60000 (可登录账号) | 普通用户使用 | 
如:创建lisi用户,且lisi属于501初始组,500附加组,UID为666
//passwd文件内为用户的初始组,group文件内为用户的附加组
//一个用户为一个用户组的成员,则称这个组为该用户的附加组
/etc/shadow
/etc/shadow文件内容组成:

1)图中的口令为密码的意思
2)若口令过期,更改口令即可继续使用该用户
3)若用户过期,则该用户就被注销(不能再使用)
4)查询/etc/shadow文件中的密码加密机制:authconfig  -- test | grep hashing
用户组管理
用户组管理:管理系统中用户组(添加、删除和修改)
- 组的添加、删除和修改实际上就是对/etc/group文件的更新
 
常用命令
(1)用户组添加:
groupadd命令:创建新用户组
指令格式:groupadd 选项 用户组组名
| 选项 | 含义 | 
|---|---|
| -g | 指定用户组的ID(用户组的标识符) 若不指定,系统默认会从1000开始按顺序分配ID | 
(2)用户组删除:
groupdel命令:删除已有的用户组
指令格式:groupdel 用户组组名
如:删除zhangsan和mawenlong用户组
//由图知:zhangsan用户组已删除,但mawenlong用户组却不能删除
因为若一个组是某一个用户的初始组时,该组不能被删除
//如果确实需要删除,可以移动(删除)以该组为初始组的用户
(3)用户组修改:
groupmod命令::修改指定用户组
指令格式:groupmod 选项 用户组组名
| 选项 | 含义 | 
|---|---|
| -g | 修改用户组的ID | 
| -n | 修改用户组的名称 | 
(4)用户组成员管理:
gpasswd命令:配置用户组的密码
指令格式:gpasswd 选项 用户组名
| 选项 | 含义 | 
|---|---|
| -A | 指定用户为用户组的管理员 仅root可用 | 
| -a | 添加用户到用户组 | 
| -d | 删除用户组的用户 | 
| -r | 删除用户组的密码 | 
| -R | 用户组的密码失效 | 
1)若没有选项,则为该用户组设置密码
2)有效用户组:用户在进行操作时,系统记录的数据
//建立文档时的属组就属于用户的有效用户组
groups命令::查询用户的所在的所有组
指令格式:groups 用户名
1)若没有指定用户名,则默认为当前用户;
2)第一个输出的用户组为有效用户组;
newgrp命令:切换用户的有效用户组
指令格式:newgrp 用户组
1)用户的有效用户组默认为用户的初始组;
2)切换的用户组必须是用户所属组(初始组和附加组);
//本质是提供一个新的shell和暂时更改用户的初始组
/etc/group
/etc/group文件内容组成:
用户组名:密码:用户组ID:组内用户名(组内成员)
| 内容 | 含义 | 
|---|---|
| 用户组名 | 用户组的名称 | 
| 密码 | X表示占位符 用户组可以设置密码,但大部分情况下并不设置 | 
| 用户组ID | 用户组的ID(标识符) | 
| 组内用户名 | 该组是组内成员的附加组 | 
/etc/gshadow
/etc/gshadow文件内容组成:
用户组名:密码:用户组管理员:组内用户名(组内成员)
pwck命令:验证/etc/passwd和/etc/shadow文件内容的格式和完整性
指令格式:pwck
pwconv命令:对比检查/etc/passwd和/etc/shadwo文件
指令格式:pwconv
1)若/etc/passwd内的用户并没有对应的/etc/shadow密码时
pwconv会读取/etc/login.defs密码相关数据,再建立该用户的/etc/shadow数据
2)若/etc/passwd中存在加密后的密码
则pwconv会将该密码移动到/etc/shadow中,在原位置填上“x”
pwunconv命令:将/etc/shadow密码栏数据移动到/etc/passwd的密码栏
指令格式:pwunconv
1)移动后会删除/etc/shadow文件(不建议使用)
chpasswd命令::读取未加密的密码,并进行加密后写入/etc/shadow密码栏
指令格式:chpasswd
用户通信
wall命令::向系统内所有登录用户的终端上发送信息(包括发送者)
指令格式:wall “广播信息”
write命令::向系统内指定的登录用户终端上发送信息
指令格式:write 用户名 终端
mesg命令::设置当前终端是否接受其他用户的信息
指令格式:mesg y或n
1)y代表接受,n代表拒绝
2)该设置对root传送的信息无效
//若查询当前mesg状态,直接输入mesg即可
mail命令::发送、查看和处理电子邮件
指令格式1:mail -s “邮件标题” 接受用户名@主机名 //发送邮件
//若发送给本机用户,则“@主机名”可省略
如:编写电子邮件发送给mwl用户

指令格式2:mail //查看和处理邮件
如:查看root用户发送给mwl用户的邮件

在查看邮件后,&输入命令处理邮件
| 命令 | 意义 | 
|---|---|
| h | 列出邮件标题 可指定列出第几封 | 
| d | 删除邮件必须(配合q命令才行) 如:d10:删除第10封邮件 d10~20:删除第10到20封邮件 | 
| s | 将邮件存储为文件 可指定保存为那个文件(默认是/hom/mail/) | 
| x | 不做任何操作退出mail 若前面有任何操作,都会被撤销 | 
| q | 退出mail并执行前面输出的操作 | 
                    
                


                
            
        
浙公网安备 33010602011771号