当前位置: 首页 > news >正文

CentOS 7 权限管理实战指南:用户组管理相关命令详解

前言

深入了解 CentOS 7 用户组管理的命令,掌握关键的用户组操作技巧。从创建和删除用户组、修改组属性,到设置组密码和管理组成员,这篇文章详细介绍了 CentOS 7 系统下常用的用户组管理命令,为读者小伙伴提供了实用而全面的指南。无论是初学者还是有经验的用户,都能在这篇文章中找到对用户组管理的实际运用方法,以便加强你的 Linux 系统管理技能,提高工作效率。

Linux权限控制的基本工作原理

Linux系统的权限管理基本原理是基于用户和用户组的访问控制。每个文件和目录都有一个所有者和一个所属用户组,以及对应的读、写、执行权限。那什么是所有者和所属组呢?又是如何控制权限呢?

  • 所有者(Owner)是指创建该文件或目录的用户。所有者具有最高权限,可以对文件或目录进行读、写和执行操作,也可以修改权限和更改所有者。
  • 所属用户组(Group)是指将文件或目录分配给某个特定用户组。所属用户组的成员具有与所有者相同的权限,但不能更改文件或目录的所有者。通常情况下,文件或目录的所属用户组与创建它的用户的默认用户组相同。
  • Linux系统有三种权限,分别是可读、可写、可执行,用数字4、2、1分别表示可读、可写、可执行。文件和目录的权限可以分为三部分,分别是所有者权限、所属用户组权限和其他用户权限,其中每一部分又分别包括读、写、执行权限。例如,一个文件的权限为-rw-r--r--,其中第一位表示这是一个普通文件;后面的三组r、w、x分别表示所有者、所属用户组、其他用户的读、写、执行权限。具体来说,这个文件的所有者具有读和写的权限,所属用户组和其他用户则只有读的权限。请注意,数字0代表没有权限,数字1代表执行权限,数字2代表写权限,数字4代表读权限。这些数字权限可以通过相加来表示不同权限的组合,例如,读和写权限为6(4+2),读、写和执行权限为7(4+2+1)。

通过设置文件和目录的权限,Linux系统可以实现对不同用户的权限控制,从而保证文件和目录的安全性和机密性。同时,Linux系统还提供了一些特殊权限,如SUID、SGID和Sticky Bit,以更精细地控制用户和进程对文件和目录的访问。

用户组管理相关命令

groups

groups 命令用于显示当前用户所属的用户组。它列出了当前用户在系统中所属的所有用户组的名称。

语法:

groups [选项] [用户名]
  • 选项:一般情况下,groups 命令并不需要太多可选参数
  • 用户名:指定要查询的用户名。如果未提供用户名,则默认为当前登录用户。

使用示例:

  • 显示当前用户所属的用户组:
groups
  • 显示指定用户所属的用户组(例如,用户名为fanfu):
groups fanfu

gpasswd

gpasswd 命令用于管理组用户和组密码。它允许管理员添加或删除组成员,设置组管理员以及更改组密码等操作。

语法:

gpasswd [选项] 组名

可选参数:

  • -a, --add 用户名:将指定的用户添加到组中。
  • -d, --delete 用户名:将指定的用户从组中删除。
  • -M, --members 用户列表:设置组成员列表,用逗号分隔。
  • -A, --administrators 管理员列表:设置组管理员,用逗号分隔。
  • -R, --restrictions 权限列表:设置组的权限限制。
  • -S, --sync:将组的密码同步到关联的GID。
  • -s, --crypt:使用指定算法设置密码加密方式。
  • -x, --expiredate 过期日期:设置密码的过期日期。

使用示例:

  • 创建一个新的组(例如,组名为developers):
sudo groupadd developers
  • 将用户添加到组中(例如,用户名为fanfu):
sudo gpasswd -a fanfu developers
  • 将用户从组中删除(例如,用户名为fanfu):
sudo gpasswd -d fanfu developers
  • 设置组管理员(例如,管理员用户名为fanfu):
sudo gpasswd -A fanfu developers
  • 设置或更改用户组密码:
gpasswd developers

groupadd

groupadd 命令用于在 Linux 系统中创建新的用户组。

语法:

groupadd [选项] 组名

可选参数:

  • -g, --gid GID:指定要分配给新组的GID(组标识符)。
  • -r, --system:创建一个系统组。
  • -K, --key VALUE:设置键值对,用于修改 /etc/login.defs 中的默认值。

使用示例:

  • 创建一个新的组(例如,组名为developers):
sudo groupadd developers
  • 创建一个系统组(例如,组名为sysadmin):
sudo groupadd -r sysadmin
  • 分配特定的GID给新组(例如,组名为testgroup,GID为1001):
sudo groupadd -g 1001 testgroup

groupmod

groupmod 命令用于修改 Linux 系统中已有的用户组。

语法:

groupmod [选项] 组名

可选参数:

  • -g, --gid GID:修改组的GID(组标识符)。
  • -n, --new-name 新名称:将组的名称更改为新名称。
  • -K, --key VALUE:设置键值对,用于修改 /etc/login.defs 中的默认值。

使用示例:

  • 将组的名称更改为新名称(例如,将组名testgroup更改为newgroup):
sudo groupmod -n newgroup testgroup
  • 修改组的GID(例如,将组名testgroup的GID更改为1001):
sudo groupmod -g 1001 testgroup

groupdel

groupdel 命令用于在 Linux 系统中删除用户组。

语法:

groupdel 组名

可选参数:

使用示例:

  • 删除一个组(例如,组名为developers):
sudo groupdel developers

请注意,只有超级用户才能执行 groupdel 命令。此命令将永久删除指定的组及其相关信息,包括组的密码和GID(如果存在)。因此,在执行此操作之前,请务必小心谨慎。

cat /etc/group

运行 cat /etc/group 命令,它会显示系统上所有用户组的信息。每一行代表一个用户组,每一行的结构是由冒号 : 分隔的字段组成,具体会包含以下字段:

  • 组名:用户组的名称。
  • 组密码:通常是 "x",表示密码存储在 /etc/gshadow 文件中。
  • GID:用户组的唯一标识符(Group ID)。
  • 组成员:属于该用户组的用户列表。

执行下面的命令,查询用户组名是developers的详细信息:

cat /etc/group | grep developers

输出结果如下所示:

developers:x:1004:ayi,fanfu

在这个示例中:developers 是一个用户组,GID 为 1004,它只有两个个成员,即 ayi和fanfu。

写在最后

喜欢我为你精心准备的 CentOS 7 用户组管理命令文章吗?如果你觉得这篇指南对你的 Linux 系统管理技能提供了帮助,不妨点个赞支持一下!当然也建议反这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术水平始终保持在最高水平。

相关文章:

CentOS 7 权限管理实战指南:用户组管理相关命令详解

前言 深入了解 CentOS 7 用户组管理的命令,掌握关键的用户组操作技巧。从创建和删除用户组、修改组属性,到设置组密码和管理组成员,这篇文章详细介绍了 CentOS 7 系统下常用的用户组管理命令,为读者小伙伴提供了实用而全面的指南…...

Python操作MySQL入门教程,使用pymysql操作MySQL,有录播直播私教课

创建数据库 create database gx character set utf8mb4;连接数据库 #!/usr/bin/python3import mysql as pymysql# 打开数据库连接 db pymysql.connect(hostlocalhost,port3306,userroot,passwordzhangdapeng520,databasegx)# 使用 cursor() 方法创建一个游标对象 cursor cur…...

面试 React 框架八股文十问十答第七期

面试 React 框架八股文十问十答第七期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)React 废弃了哪些生命…...

Docker教程

docker 安装 官方文档 wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker your-user sudo usermod -aG docker ${USER} newgrp docker # 更新docker用户组 cat /etc/group | grep docker docker --version 使用非root用户管理 帮助启动类 命令 system…...

数据结构:二叉树

数据结构:二叉树 文章目录 数据结构:二叉树1.一些特殊的二叉树1.满二叉树2.完全二叉树 2.手动创建一颗二叉树3.二叉树深度优先遍历4.二叉树层序遍历5.二叉树基础操作1.创建二叉树2.二叉树节点个数3.二叉树叶子节点个数4.二叉树的高度5.二叉树第k层节点个…...

HTTP超文本传输协议

原文链接: 1.5 万字 40 张图解 HTTP 常见面试题(值得收藏)_图解http 小林-CSDN博客https://blog.csdn.net/qq_34827674/article/details/124089736?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170521531616777224478386%252…...

视频SDK的技术架构优势和价值

为了满足企业对于高质量视频的需求,美摄科技推出了一款强大的视频SDK(软件开发工具包),旨在帮助企业轻松实现高效、稳定的视频功能,提升用户体验,增强企业竞争力。 一、美摄视频SDK的技术实现方式 美摄视…...

Invalid bound statement (not found)(xml文件创建问题)

目录 解决方法: 这边大致讲一下我的经历,不想看的直接点目录去解决方法 今天照着老师视频学习,中间老师在使用动态SQL时,直接复制了一份,我想这么简单的一个,我直接从网上找内容创建一个好了,…...

正则表达式2 常见模式

继上次的正则表达式速攻1/2-CSDN博客 还有一些常见的匹配模式可以直接使用 电子邮箱 xxxxxx.域名 的情况 \b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\bhttp或者https网址 的情况 http[s]?://(?:[a-zA-Z]|[0-9]|[$-_.&]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F…...

前端对接电子秤、扫码枪设备serialPort 串口使用教程

因为最近工作项目中用到了电子秤,需要对接电子秤设备。以前也没有对接过这种设备,当时也是一脸懵逼,脑袋空空。后来就去网上搜了一下前端怎么对接,然后就发现了SerialPort串口。 Serialport 官网地址:https://serialpo…...

LeeCode前端算法基础100题(18)整数转罗马数字

一、问题详情: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1…...

【C++ 程序设计入门基础】- 第4节-函数

1、函数 函数是对实现某一功能的代码的模块化封装。 函数的定义&#xff1a; 标准函数&#xff1a; 输入 n 对整数的 a、b &#xff0c;输出它们的和。 #include <iostream> #include <windows.h> using namespace std;int add(int a,int b);//函数原型声明int…...

华为数通HCIA题库(750题)

完整题库在这里&#xff1a;华为数通HCIA-RS题库注释版-加水印.pdf资源-CSDN文库 此处只节选几题。 1.网络管理员在网络中捕获到了一个数据帧&#xff0c;其目的MAC地址是01-00-5E-AO-B1-C3。关于该MAC地址的说法正确的是&#xff08; )。 A.它是一个单播MAC地址 B.它是一个广播…...

SpringIOC之support模块GenericXmlApplicationContext

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…...

CCF认证+蓝桥杯习题训练

贪心 *上取整公式* *代码展示* #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 1e5 10;typedef long long LL;int v[N] , a[N];int main() {int n , d;cin >> n >> d;for(int i 1 ; i < n…...

vue前端开发自学基础,动态切换组件的显示

vue前端开发自学基础,动态切换组件的显示&#xff01;这个是需要借助于&#xff0c;一个官方提供的标签&#xff0c;名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…...

16.桥接模式

桥接模式 介绍 桥接模式是一种结构型设计模式&#xff0c;它通过将抽象部分与实现部分分离&#xff0c;使它们可以独立变化。这种模式通过组合的方式来实现&#xff0c;而不是继承。桥接模式通过将抽象和实现解耦&#xff0c;从而实现抽象和实现的分离&#xff0c;使得系统更加…...

【网络安全】【密码学】【北京航空航天大学】实验一、数论基础(上)【C语言和Java实现】

实验一、数论基础&#xff08;上&#xff09; 一、实验目的 1、通过本次实验&#xff0c;熟悉相关的编程环境&#xff0c;为后续的实验做好铺垫&#xff1b; 2、回顾数论学科中的重要基本算法&#xff0c;并加深对其的理解&#xff0c;为本学期密码学理论及实验课程打下良好…...

Go语言的sync.Pool如何使用?使用场景具体有哪些?

sync.Pool 是 Go 标准库中提供的一个对象池&#xff08;Object Pool&#xff09;的实现。对象池是一种用于缓存和复用对象的机制&#xff0c;可以在一定程度上减轻内存分配的开销。sync.Pool 专门用于管理临时对象&#xff0c;适用于一些需要频繁创建和销毁的短暂对象&#xff…...

MySQL单表查询练习题

一、创建表的素材 表名&#xff1a;worker——表中字段均为中文&#xff0c;比如&#xff1a;部门号、工资、职工号、参加工作等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 …...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...