当前位置: 首页 > 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, 政治面貌 …...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...