Linux CentOS7 用户组管理

Linux操作系统基于多用户的设计理念,允许多个用户同时使用系统资源。用户是登录系统并使用系统资源的个体,其都有自己的账户和密码。用户组是将众多用户归类为一组。Linux中的用户和用户组是系统安全和权限管理的基础。本文将探讨Linux中用户组的创建和管理。

关于用户的创建与管理是最基本的操作,用户组的删除与修改等,不在本文讨论之列。我们将从用户组(有时简称组)的创建与查询开始讨论。

一、创建组

新安装的centos7系统中,默认存在的组是root组,及其系统组(如bin、sys、Ip、tty、mem等)。

组ID用gid表示,与uid自动编号相同,系统id小于1000,普通组(与普通用户)id将从1000开始编号,添加一个新用户,编号自动加1。如果设置uid(或gid)为2000,新用户将在此基础自动加1进行编号。如果重设一用户gid为1500,新用户仍然在原来的基础上(2000)自动加1。

1.单独创建

groupadd 组名

-g 指定用户组的gid

2.由创建用户产生

useradd 用户名

-g 指定用户组的gid/组名

-G 指定用户附加组名/gid,多个组时用逗号分开

二、组操作

对用户组的常用操作包括:设置组密码、为组指定一名或多名管理员、添加其他用户到组内、把不合适的组成员删除等。不常见操作有对用户组的删除groupdel和对用户组的修改groupmod。

1.指定管理员

gpasswd -A 用户名 组名

如把tangseng(唐僧)设为组管理员

gpasswd -A tangseng tangseng

2.添加成员

在用户组中添加成员有两种方式:root管理员或组管理员

a.由root添加成员

把用户zhang、wang和zhao添加到tangseng组中

(1)把tangseng组作为主组

(2)把tangseng组作为附加组

b.由组管理员添加成员

基本语法:

gpasswd -a 用户名 组名

本案例由组管理员tangseng把tang、song和ming添加到tangseng

su - tangseng

gpasswd -a tang tangseng

gpasswd -a song tangseng

gpasswd -a ming tangseng

3.删除成员

a. 由root删除成员

gpasswd -d 用户名 组名

本案例中把由root管理员把song组员从tangseng组中删除

b.由管理员删除组成员

基本语法:

gpasswd -d 用户名 组名

本案例中把由组管理员tangseng把ming组员删除

gpasswd -d ming tangseng

三、查看组

1.查看用户属于组

a.groups

由命令groups用户名 查看用户属于哪些组

由上图可知:tangseng只属于tangseng组,而tang属于三个组tang、class1和tangseng。在这三个组中,tang这个组是tang用户的主组,而class1和tangseng是附加组。

b./etc/group

由组文件查看组及组成员

由上图可知:第1列是组名,第四列含有用户名的,是第1列组的成员。class1有三个成员,wukong组和wuneng组都含有成员baigujing,tangseng组中含有四个成员。

c.id

由id -g用户名 查看用户的组信息

2.查看组中成员

getent group 组名

由上图可以该组中有四名成员

getent --help

可以查看命令getent的帮助信息。

四、切换组

在Linux系统中,可以通过用户修改,把其主组改变为其他组。原来的主组将不存在,其附加组中也没有了改变前的组。而通过newgrp命令,把附加组中的某一个组切换为主组,不改变用户所占有的组。

1.usermod

我们以用户tang为例,验证改变tang的主组之前后变化

a.查tang主组

由上图可知:tang主组是tang,其gid为5018

b.改变tang主组为class1

usermod -g class1 tang

c.验证tang主组变化

通过改变主组,可看到gid由原来的5018变为现在的5022,组名由原来的tang变为现在的class1。

2.newgrp

常用的用户组之间切换命令是newgrp。通过该命令,可以让用户从附加组中选择一个作为其新的主组。

newgrp命令的基本语法如下:

newgrp [选项] [组名]

其中,组名为要切换到的用户组名称。如果在命令行上没有指定组名,则默认将会进入当前登录用户的主组。

切换原理与功能

一个用户有多个附加组时,通过newgrp切换,把原主组与某一附加组交换:原主组成为附加组,某一附加组成为主组。

下面的案例,我们以wukong为例,进行操作。

a.切换前信息

切换前查看用户的主组与附加组,可看到gid所标志的,就是当前主组

主要查看方法:

(1)id 用户名

(2)getent group 组名

(3)cat /etc/passwd |grep "用户名"

(4)cat /etc/group |grep "组名"

上图是切换主组前的相关信息。我们切换用户wukong,在其家目录中创建目录及文件

b.切换

进行切换newgrp 附加组名

newgrp xiyou

c.验证

再次查看组信息

由上图可以看到切换前后的变化:用户在哪个组中,创建普通文件与目录时,所属组就是哪个组。

由此也可观察到所属组的变化是临时性的,退出切换组状态,仍保持原来的所属组

五、组权限

gpasswd的帮助

1.设密码

gpasswd 组名

2.用户组的权限管理

文件权限:Linux中的每个文件和目录都有所属用户和所属用户组,通过文件权限可以控制用户对文件的访问权限。文件权限包括读取(r)、写入(w)和执行(x)权限,分别对应数字表示为4、2和1。通过chmod命令可以修改文件权限。

文件所属组:每个文件都有一个所有者和一个所属组,所有者是文件创建者的用户,所属组是所有者所属的用户组。通过chown和chgrp命令可以修改文件的所有者和所属组。

特殊权限:除了基本的文件权限外,Linux还支持一些特殊权限,如SetUID、SetGID和Sticky Bit。SetUID权限允许用户在执行程序时以程序所有者的权限执行,SetGID权限允许用户在执行程序时以程序所属组的权限执行,Sticky Bit权限用于限制对某些目录的删除操作。

用户和组的关系:用户和用户组之间有一对多的关系,一个用户可以同时属于多个用户组。用户组可以通过文件权限和ACL(访问控制列表)来控制对文件的访问权限。

系统安全性

a.资源隔离:通过将用户分配到不同的用户组,可以实现资源的隔离。不同用户组之间的文件和目录权限可以相互独立,从而防止用户越权访问和修改资源。

b.访问控制:通过用户和用户组的管理,可以实现对系统资源的精细控制。管理员可以根据需要为不同用户和用户组分配不同的权限,从而限制用户对系统资源的访问。

c.安全审计:用户和用户组的管理可以为系统安全审计提供重要依据。通过记录和监控用户和用户组的活动,可以及时发现异常行为和安全威胁。

d.用户认证:用户和用户组的管理是系统认证和授权的基础。通过用户和用户组的管理,可以实现用户的身份验证和权限控制,保障系统的安全性。

相关推荐
蒙娜丽宁4 分钟前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev6 分钟前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
AndyFrank19 分钟前
mac crontab 不能使用问题简记
linux·运维·macos
好喜欢吃红柚子20 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python24 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯34 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
筱源源35 分钟前
Kafka-linux环境部署
linux·kafka
千天夜1 小时前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
EricWang13581 小时前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
测试界的酸菜鱼1 小时前
Python 大数据展示屏实例
大数据·开发语言·python