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

相关推荐
海绵波波107几秒前
玉米产量遥感估产系统的开发实践(持续迭代与更新)
python·flask
漫谈网络14 分钟前
基于 Netmiko 的网络设备自动化操作
运维·自动化·netdevops·netmiko
祁同伟.15 分钟前
【数据结构 · 初阶】- 堆的实现
c语言·数据结构
夜夜敲码27 分钟前
C语言教程(十六): C 语言字符串详解
c语言·开发语言
宋康34 分钟前
C语言结构体和union内存对齐
c语言·开发语言
逢生博客39 分钟前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
꧁坚持很酷꧂40 分钟前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
堕落似梦1 小时前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
学习噢学个屁1 小时前
基于51单片机的超声波液位测量与控制系统
c语言·单片机·嵌入式硬件·51单片机
凉、介1 小时前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci