" 数学老师说过,过程错了就全错了,语文老师却说,宁愿错了也不要空着。"
用户与组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
一、介绍
1. 用户说明
在系统管理员的工作中,很重要的一环就是管理用户账号,任何一个要使用系统资源的用户,都必须向管理员申请用户账号,然后以这个账号身份进入系统。所以必须清楚如何管理好系统用户账号。
2. 概念说明
UID(User IDentification):每个用户都有一个对应的UID,UID在系统中是唯一的
GID(Group IDentification):每个用户在创建时都会为这个用户创建一个默认组(主组),组会对应一个GID,用户必须属于一个且只有一个主组。主组以外的组属于用户的附加组。
注意:一个用户只有一个主组,但可以属于0或者多个附加组
3. 相关配置文件
/etc/passwd # 存储用户关键信息
/etc/shadow # 存储用户密码信息
/etc/group # 存储用户组关键信息
二、用户管理
1. 创建用户
| 命令 | 说明 |
|---|---|
| useradd 【选项】 用户名 | 创建用户 |
useradd命令选项:
| 选项 | 说明 |
|---|---|
| -d | 指定某个目录成为家目录(务必使用绝对路径)。默认会创建一个和用户名相同的家目录 |
| -g | 后面接组名,指定用户所属的用户组,默认不指定会自动创建一个和用户名同名的用户组 |
| -u | 后面接UID。指定一个特定的UID给这个账号 |
| -M | 强制不创建用户家目录 |
| -c | 添加用户注释 |
示例:
示例一:默认值建立一个用户
[root@CaiChen ~]# useradd hello1
[root@CaiChen ~]# ll -d /home/hello1/
drwx------. 3 hello1 hello1 74 3月 12 17:34 /home/hello1/ # 默认会建立用户家目录
查看创建效果:
[root@CaiChen ~]# grep hello1 /etc/passwd
/etc/passwd:hello1:x:1001:1001::/home/hello1:/bin/bash
示例二:指定UID创建用户,UID必须是系统中不存在的
[root@CaiChen ~]# useradd -u 1100 hello2
[root@CaiChen ~]# grep hello2 /etc/passwd
hello2:x:1100:1100::/home/hello2:/bin/bash
认识/etc/passwd文件:
与用户账号相关的文件
[root@CaiChen ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...省略...
CaiChen:x:1000:1000:CaiChen:/home/CaiChen:/bin/bash
hello1:x:1001:1001::/home/hello1:/bin/bash
hello2:x:1100:1100::/home/hello2:/bin/bash
#用户名:密码:UID:GID:注释:家目录:解释器
查看用户UID和对应组的GID:
[root@CaiChen ~]# id hello1
uid=1001(hello1) gid=1001(hello1) 组=1001(hello1)
2. 设置密码
linux不允许没有密码的用户登录到系统,因此前面创建的用户目前处于锁定状态,需要设置密码才能登录系统
| 命令 | 说明 |
|---|---|
| passwd 【用户名】 | 设置密码或修改密码,不指定用户名表示修改当前用户密码 |
示例:
# 设置hello1的密码
[root@CaiChen ~]# passwd hello1
更改用户 hello1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
#说明:在设置密码时,没有任何输入提示,确保两次输入密码一致,按下回车即可。
**认识/etc/shadow文件:**与用户密码相关的文件
[root@CaiChen ~]# cat /etc/shadow
root:$6$3NGfAb6CfFX2kGp7$Nlr8CjkaaX/6Ipv941vtzMqjy/wvqhGEYZ7ijH04fL92561qBzBP6Q64dZiKlQyPdufA8mvL68mKm472MMOEl0:17957:0:99999:7:::
bin:*:16231:0:99999:7:::
...省略...
CaiChen:$6$zXmpvSEl5crBcOUS$1TkFprm592Hgh65MGbc99VtYLjSn1tXXDH6owE3KhCRte2OKkx5TpEfXexxvveOkApUG7faAWARI2byqSErUa0:17957:0:99999:7:::
hello1:$6$8qS2vBwO$WfyvthDD7mkTASVIbrrOK4y7bYoileSCI6.fgJ.rqlCvqPh50/nOZcoJfYS08ZyVf8nuaCfgF60VxLpOOI0XZ.:17967:0:99999:7:::
hello2:$6$tZVAwr.v$jiDW7iMPCOeKiQkf4aOAelpjJF/a5ZLiERPOmpQLbPSIC2PmfjkRh2Yv153QCn79J1RM.47RcDhuWjTwahaOe0:17967:0:99999:7:::
hello3:!!:17967:0:99999:7:::
# 说明:hello1、hello2设置了密码,hello3没有设置密码
3. 修改用户信息
| 命令 | 说明 |
|---|---|
| usermod [选项] 用户名 | 修改用户信息 |
usermod选项说明:
| 选项 | 说明 |
|---|---|
| -g | 修改用户对应的用户组,选项值可以是GID,也可以是组名 |
| -G | 修改用户对应的附加组 |
| -u | 修改用户的UID |
| -l(小写) | 修改用户名 |
| -c | 修改用户注释 |
| -d | 修改用户家目录 |
| -s | 修改用户登录使用的shell |
示例:
示例一:修改hello1用户组为1000
[root@CaiChen ~]# id hello1
uid=1001(hello1) gid=1001(hello1) 组=1001(hello1)
[root@CaiChen ~]# usermod -g 1000 hello1
[root@CaiChen ~]# id hello1
uid=1001(hello1) gid=1000(CaiChen) 组=1000(CaiChen)
示例二:修改hello1用户名为helloworld1
[root@CaiChen ~]# usermod -l helloworld1 hello1
[root@CaiChen ~]# grep helloworld1 /etc/passwd
helloworld1:x:1001:1000::/home/hello1:/bin/bash
4. 删除用户
| 命令 | 说明 |
|---|---|
| userdel 【选项】 用户名 | 删除用户 |
userdel选项:
| 选项 | 说明 |
|---|---|
| -r | 删除用户的同时删除其家目录 |
示例:
[root@CaiChen ~]# userdel -r hello3
[root@CaiChen ~]# id hello3
id: hello3: no such us
注意:已经登录的用户删除的时候回提示删除失败,解决办法
[root@CaiChen home]# userdel -r hello2
userdel: user hello2 is currently used by process 113380
#解决办法1:强制杀死对应用户的进程
[root@CaiChen home]# ps -ef | grep hello2
root 113379 113334 0 19:38 pts/1 00:00:00 su hello2
hello2 113380 113379 0 19:38 pts/1 00:00:00 bash
root 113472 113411 0 19:42 pts/1 00:00:00 grep --color=auto hello2
[root@CaiChen ~]# kill -9 113380
[root@CaiChen ~]# 已杀死 (core dumped)
[root@CaiChen ~]# userdel -r hello2
[root@CaiChen ~]# id hello2
id: hello2: no such user
#解决办法2:
在登录需要删除的⽤户之后,按下快捷键“ctrl+d”进行对当前⽤户的注销,随后退
回到上一个用户(root)此时就可以对需要删除的⽤户进行删除操作。
三、组管理
每个用户都有一个用户组(主组).
用户组的管理涉及组的添加、删除和修改
1. 用户组添加
| 命令 | 说明 |
|---|---|
| groupadd 【选项】 组名 | 创建组 |
groupadd选项说明:
| 选项 | 说明 |
|---|---|
| -g | 设置GID。不写会设置默认GID |
示例:
[root@CaiChen ~]# groupadd admins
[root@CaiChen ~]# tail -1 /etc/group
admins:x:1003:
2. 用户组修改
| 命令 | 说明 |
|---|---|
| groupmod 【选项】 组名 | 修改组信息 |
groupmod选项说明:
| 选项 | 说明 |
|---|---|
| -g | 设置自定义一个的GID |
| -n | 设置新的组名称 |
示例:
# 修改admins用户组。将UID改为520,将名称改为admin
[root@CaiChen ~]# groupmod -g 520 -n admin admins
[root@CaiChen ~]# grep admin /etc/group
admin:x:520:
3. 用户组删除
| 命令 | 说明 |
|---|---|
| groupdel 组名 | 删除组 |
示例:
[root@CaiChen ~]# groupdel admin
4. 组文件说明
与用户组相关的文件/etc/group
[root@CaiChen ~]# cat /etc/group
root:x:0:
bin:x:1:
...省略...
CaiChen:x:1000:CaiChen
组名 :密码:GID:组内用户
# 说明:
密码x代表占位符,用户组可以设置密码,但是大部分情况不需要设置
_____ _ _____ _
/ ____| (_) / ____| | |
| | __ _ _ | | | |__ ___ _ __
| | / _` | | | | | | '_ \ / _ \ | '_ \
| |____ | (_| | | | | |____ | | | | | __/ | | | |
\_____| \__,_| |_| \_____| |_| |_| \___| |_| |_|
好了各位,以上就是这篇文章的全部内容了,能看到这里人啊,都是人才。
如果这个文章写得还不错,觉得「王采臣」我有点东西的话 求点赞👍求关注❤️求分享👥 对耿男我来说真的非常有用!!!
白嫖不好,创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
王采臣 | 文 【原创】 如果本篇博客有任何错误,请批评指教,不胜感激 !微信公众号: