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

相关推荐
Cachel wood12 分钟前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
終不似少年遊*18 分钟前
pyecharts
python·信息可视化·数据分析·学习笔记·pyecharts·使用技巧
Python之栈19 分钟前
【无标题】
数据库·python·mysql
Youkiup20 分钟前
【linux 常用命令】
linux·运维·服务器
qq_4336184421 分钟前
shell 编程(二)
开发语言·bash·shell
qq_2975046124 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i29 分钟前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
袁袁袁袁满35 分钟前
100天精通Python(爬虫篇)——第113天:‌爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python·网络爬虫·爬虫实战·urllib·urllib模块教程
weixin_4373982137 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~39 分钟前
ubuntu开机进入initramfs状态
linux·运维·ubuntu