基础命令:用户管理
目录
3.9 用户分类
3.9.1 用户为三类
| 用户 | 角色 | 权限 |
|---|---|---|
| root | 超级管理员(皇帝) | 最高 |
| oldboy | 普通用户 | 只可以管理自己相关的文件,企业都是通过普通账号登陆系统 |
| www | 虚拟用户 | 运行程序的时候都需要一个身份来运行,但是不需要这个用户来登陆系统管理 |
3.9.2 如何识别管理员、普通用户、虚拟用户,可以使用UID(类似身份证号)
| UID | 角色 | 说明 |
|---|---|---|
| 0 | 管理员 | 超级管理员,拥有最高权限 |
| 1~999 | 虚拟用户 | 只可以运行程序,不能登陆系统 |
| 1000+ | 普通用户 | 可以登陆,但是权限不高,只可以管理自己相关文件 |
注意,以上分类都是系统默认,我们可以手动进行修改,可以将虚拟用户和普通用户的UID范围进行修改
3.9.3 通过命令查看用户信息
id [用户名]
3.9.4 用户的相关配置文件
/etc/passwd
root :x :0 :0 :root :/root :/bin/bash
| root | x | 0 | 0 | root | /root | /bin/bash |
|---|---|---|---|---|---|---|
| 用户名称 | 密码,hash存放 | UID | GID | root描述说明,可空 | 用户家目录 | /bin/bash命令解释器,/sbin/nologin不允许登陆 |
#用户的家目录模版
/ect/skel/
#创建用户的流程:
1.用户输入 useradd [用户名]
2.在/home下创建出家目录/home/[用户名]
3.将/etc/skel/下的隐藏文件复制到/home/[用户名]
4.将/home/[用户名]下的环境变量文件属主属组修改为[用户名]
3.9.5 useradd创建用户
语法结构:useradd [参数] [用户名]
| 参数 | 用户名 |
|---|---|
| 麒麟,红帽(大富大贵的普通人) | |
| -u | 指定UID号 |
| -g | 指定GID号 |
| -M | 不创建家目录 |
| -s | 指定命令解释器 |
| Ubuntu,Debian(凄惨没有家不能登陆的虚拟人) | |
| -m | 创建家目录 |
| -s | 指定解释器 /bin/bash /sbin/nologin |
案例83. 创建一个 ren 用户
#默认创建的为普通账号,可以正常登陆系统
[root@kylin-ren-class /]# useradd ren
[root@kylin-ren-class /]# id ren
用户id=1000(ren) 组id=1000(ren) 组=1000(ren)
案例84. 切换到 ren 用户
su - ren
案例85. 使用 rm -rf /*删库
# 没有权限删除系统文件,但是可以删除自己相关的家目录下的隐藏文件
案例86. 接上回,把删除的环境变量配置文件从root家目录中或者是/etc/skel中复制到当前的家目录下
cp /etc/skel/.* /home
案例87. 创建普通账号ren2,指定UID为666,指定GID为666
# 注意手动创建GID号时,必须提前手动创建组
1.创建组
groupadd -g666
2.创建ren2账号
useradd -u666 -g666 ren2
3.查看ren2用户信息
id ren2
案例88. 创建虚拟账号ren3,不创建家目录,不允许登陆系统
useradd -M -s /sbin/nologin ren3
id ren3
grep ren3 /etc/passwd
案例89. 创建虚拟账户ren4,UID为777,不允许登陆,不创建家目录
# 先创建组
groupadd -g777 ren4
# 然后再创建制定GID号的用户
useradd -u777 -g777 -M -s /sbin/nologin ren4
案例90. 创建普通账号ren5
useradd -m -s /bin/bash ren5
案例91. 创建虚拟账号ren6,UID999,GID999,不创建家目录,不允许登陆
# 如果指定GID那么就要提前创建用户组
groupadd -g999
# 创建用户
useradd -u999 -g999 -s /sbin/nologin ren6
3.9.6 删除用户
语法结构:userdel -r [用户名]
-r 删除家目录以及相关内容
3.9.7 修改用户
语法结构:usermod [参数] [修改的XXX] [用户名]
| 参数 | 说明 |
|---|---|
| -u | 修改UID |
| -g | 修改GID |
| -s | 修改解释器 |
3.9.8 设置用户密码
# 交互式修改密码
语法结构1:
passwd [回车] #修改当前用户的登陆密码
passwd [用户名] #指定修改某个用户的密码
# 非交互式修改密码
语法结构2:
麒麟,红帽:echo [密码] | passwd --stdin [用户名]
Ubuntu:echo [用户名]:[密码] | chpasswd
注意,所有账号不设置密码不让远程登陆,不可以进行su切换
只能使用root进行切换到没有设置密码的普通账户下
4.0 chown修改文件属主属组
- 命令结构:chown 参数 [属主].[属组] [file]
| 参数 | 说明 |
|---|---|
| -R | 递归操作文件和目录 |
案例96. 修改1.txt的属主和属组为ren用户
[root@kylin-ren-class ren]# chown ren.ren 1.txt
[root@kylin-ren-class ren]# ll
-rw-r--r-- 1 ren ren 17 1月 3 14:55 1.txt
案例97. 只修改文件的属主为root
[root@kylin-ren-class ren]# chown root 1.txt
[root@kylin-ren-class ren]# ll
-rw-r--r-- 1 root ren 17 1月 3 14:55 1.txt
案例98. 只修改文件的属组为pengyu
[root@kylin-ren-class ren]# chown .pengyu 1.txt
[root@kylin-ren-class ren]# ll
-rw-r--r-- 1 root pengyu 17 1月 3 14:55 1.txt
案例99. 递归修改文件的属主和属组
[root@kylin-ren-class ren]# ll txt/
总用量 0
-rw-r--r-- 1 root root 0 1月 1 15:29 1.txt
-rw-r--r-- 1 root root 0 1月 1 15:29 1.TXT
[root@kylin-ren-class ren]# chown -R ren.ren ./txt
[root@kylin-ren-class ren]# ll txt
总用量 0
-rw-r--r-- 1 ren ren 0 1月 1 15:29 1.txt
-rw-r--r-- 1 ren ren 0 1月 1 15:29 1.TXT
4.1 usermod修改用户属性
- 主要用于管理用户属性,可以用来为用户添加附加组。
语法:usermod [参数] [用户名]
| 参数 | 说明 |
|---|---|
| -c | 修改用户账号的备注信息 |
| -d | 修改用户的家目录 |
| -e | 修改账号的过期时间 |
| -f | 设置密码过期后,账户被锁定前的宽限时间。-1表示不锁定用户 |
| -g | 修改用户的主组 |
| -G | 设置用户所属的附加组(会覆盖原有附加组,建议使用-a参数 |
| -a -G | 将用户追加到附加组,而不移除已有的附加组 |
| -l | 修改用户名 |
| -L | 锁定用户账户(禁用账户登陆) |
| -U | 解锁用户账户 |
| -p [密码] | 使用使用已加密的密码字符串设置用户密码(不推荐,建议使用 passwd 命令) |
| -s [shell] | 修改用户的默认登陆的shell |
| -u | 修改用户的UID |
案例103. 修改用户账户的备注信息
usermod -c "This is a test user" [用户名]
案例104. 修改用户的家目录
usermod -d [/new/home] [用户名]
案例105. 设置账户的过期日期,格式为 YYYY-MM-DD
usermod -e [2025-1-4] [用户名]
案例106. 设置密码过期后,账户被锁定前的宽限7天
usermod -f [7] [用户名]
案例107. 修改用户的主组
usermod -g [主组] [用户名]
案例108. 设置用户所属的附加组
usermod -G [附加组],[附加组] [用户名]
案例109. 将用户追加到附加组,而不移除已有的附加组
usermod -a -G [附加组] [用户名]
案例110. 修改用户名
usermod -l [newusername] [oldusername]
案例111. 锁定用户账户(禁用登录)
usermod -L [用户名]
案例112. 解锁用户账户
usermod -U [用户名]
案例113. 使用已加密的密码字符串设置用户密码
usermod -p [encryptedpassword] [用户名]
案例114. 修改用户的默认登录 Shell
usermod -s [/bin/zsh] [用户名]
案例115. 修改用户的 UID
usermod -u [2001] [用户名]
4.2 groupmod修改用户组属性
- 用于更改群组识别码或名称
groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]
| 参数 | 说明 |
|---|---|
| -g | 设置新群组id |
| -n | 设置新群组名称 |
4.3 groupdel删除组
- 倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组
groupdel [群组名称]

浙公网安备 33010602011771号