自动化运维之用户与组管理(四)

366 阅读7分钟

" 数学老师说过,过程错了就全错了,语文老师却说,宁愿错了也不要空着。"

用户与组管理

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代表占位符,用户组可以设置密码,但是大部分情况不需要设置
                                   _____           _    _____   _
                                  / ____|         (_)  / ____| | |
                                 | |        __ _   _  | |      | |__     ___   _ __
                                 | |       / _` | | | | |      | '_ \   / _ \ | '_ \
                                 | |____  | (_| | | | | |____  | | | | |  __/ | | | |
                                  \_____|  \__,_| |_|  \_____| |_| |_|  \___| |_| |_|

好了各位,以上就是这篇文章的全部内容了,能看到这里人啊,都是人才。

如果这个文章写得还不错,觉得「王采臣」我有点东西的话 求点赞👍求关注❤️求分享👥 对耿男我来说真的非常有用!!!

白嫖不好,创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

王采臣 | 文 【原创】 如果本篇博客有任何错误,请批评指教,不胜感激 !微信公众号: