如何在 Linux 中将用户添加到多个组?

简介: 【4月更文挑战第17天】

在 Linux 系统中,用户组是一种重要的管理工具,用于管理用户的权限和访问级别。通过将用户组分配给用户,系统管理员可以更好地控制用户对文件、目录和其他系统资源的访问权限。本文将介绍 Linux 用户组的基础知识,包括概念、作用以及创建和管理用户组的基本方法。

用户组概念

用户组是一组用户的集合,它们被视为一个单独的实体。在 Linux 系统中,每个用户都至少属于一个用户组,而且一个用户可以属于多个用户组。

用户组的主要作用是管理用户的权限。通过将用户分配到不同的用户组中,管理员可以根据需要控制用户对系统资源的访问级别。用户组也可以用于实现文件和目录的共享访问权限。

在 Linux 中,用户组可以分为以下几类:

  • 主组(Primary Group): 每个用户都有一个主组,该组通常以用户的用户名命名,并且新创建的文件和目录的默认所属用户组就是用户的主组。

  • 附加组(Supplementary Group): 除了主组之外,用户还可以属于多个附加组。附加组可以让用户访问其他组资源。

在 Linux 系统中,可以使用一系列命令来创建和管理用户组:

  • groupadd 用于创建新的用户组。语法为:groupadd [options] group_name

  • groupmod 用于修改现有用户组的属性,如组名和组 ID。语法为:groupmod [options] group_name

  • groupdel 用于删除不再需要的用户组。语法为:groupdel group_name

让我们通过几个示例来演示如何创建和管理用户组:

示例 1:创建新用户组

要创建一个名为developers的新用户组,可以使用以下命令:

sudo groupadd developers

这将在系统中创建一个名为developers的新用户组。

示例 2:修改用户组属性

假设我们需要修改developers用户组的名称为devs,可以使用以下命令:

sudo groupmod -n devs developers

这将把developers用户组的名称修改为devs

示例 3:删除用户组

如果developers用户组不再需要,可以使用以下命令将其删除:

sudo groupdel devs

这将从系统中完全删除名为devs的用户组。

添加用户到单个用户组

使用 usermod 命令添加用户到现有用户组

usermod 命令是一个用于修改用户属性的强大工具,其中包括将用户添加到现有用户组的功能。下面是使用 usermod 命令将用户添加到现有用户组的示例操作:

sudo usermod -aG group_name username
  • -a 参数表示将用户添加到附加组中,保留其原有的主组。
  • -G 参数后跟要添加用户的用户组名称,可以同时指定多个组,用逗号分隔。
  • username 是要添加到用户组的用户名。

例如,要将用户 john 添加到名为 developers 的用户组中,可以使用以下命令:

sudo usermod -aG developers john

使用 useradd 命令创建用户并加入用户组

除了使用 usermod 命令将现有用户添加到用户组外,还可以在创建用户时直接将其加入用户组。useradd 命令允许在创建用户时指定用户所属的用户组。示例如下:

sudo useradd -G group_name username
  • -G 参数后跟要添加用户的用户组名称,可以同时指定多个组,用逗号分隔。

例如,要创建一个名为 emma 的新用户,并将其直接加入 developers 用户组,可以使用以下命令:

sudo useradd -G developers emma

从用户组中删除用户

有时候,我们需要从用户组中移除用户。这可以通过 usermod 命令来实现,只需简单地将用户从附加组中移除即可。示例如下:

sudo usermod -G group_name -username
  • -G 参数后跟要从中移除用户的用户组名称。
  • - 符号用于指示将用户从指定的用户组中移除。

例如,要将用户 johndevelopers 用户组中移除,可以使用以下命令:

sudo usermod -G developers -john

添加用户到多个用户组

使用 usermod 命令将用户添加到多个用户组

usermod 命令不仅可以将用户添加到单个用户组,还可以同时将用户添加到多个用户组。示例如下:

sudo usermod -aG group1,group2,group3 username
  • -a 参数表示将用户添加到附加组中,保留其原有的主组。
  • -G 参数后跟要添加用户的用户组名称列表,多个组名之间用逗号分隔。
  • username 是要添加到用户组的用户名。

例如,要将用户 john 添加到 developersadmins 两个用户组中,可以使用以下命令:

sudo usermod -aG developers,admins john

理解主组与附加组

在 Linux 中,每个用户都有一个主组(Primary Group),新创建的文件和目录的默认所属用户组就是用户的主组。此外,用户还可以属于多个附加组(Supplementary Group)。理解主组与附加组的概念对于管理用户组非常重要。

  • 主组(Primary Group): 每个用户只能拥有一个主组,通常以用户的用户名命名。新创建的文件和目录的默认所属用户组就是用户的主组。

  • 附加组(Supplementary Group): 除了主组之外,用户可以属于多个附加组。附加组允许用户访问其他组资源,而不影响其原有的主组。

让我们通过一个示例来演示如何将用户添加到多个用户组:

假设我们需要将用户 emma 添加到 developersadmins 两个用户组中,首先使用以下命令创建用户 emma

sudo useradd emma

然后,使用 usermod 命令将用户 emma 添加到 developersadmins 两个用户组中:

sudo usermod -aG developers,admins emma

现在,用户 emma 已经成功添加到 developersadmins 两个用户组中,可以访问这两个用户组所拥有的资源。

目录
相关文章
|
负载均衡 Ubuntu 应用服务中间件
|
Linux 数据库 网络协议
Linux环境下安装和配置Informix数据库(多次试错后总结)
本文主要讲解在Centos环境下,Informix数据库的安装和配置方法
3769 0
Linux环境下安装和配置Informix数据库(多次试错后总结)
|
Linux Perl
解决脚本实现:sed -i 替换变量,变量中含有特殊转义字符的问题
解决脚本实现:sed -i 替换变量,变量中含有特殊转义字符的问题
解决脚本实现:sed -i 替换变量,变量中含有特殊转义字符的问题
|
运维 Kubernetes API
k8s集群新增master 、work节点重新生成token、certificate-key等操作
k8s集群运维中通常会存在新增和删除节点,一些token、certificate-key信息 会被遗忘,怎么去重生成了 可以按照以下方式
5298 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
269772 0
|
Ubuntu 安全 网络协议
|
开发框架 前端开发 Swift
【Swift开发专栏】Swift与跨平台应用开发
【4月更文挑战第30天】Swift 在跨平台开发中优缺点并存,其代码复用性、高性能和易于集成是亮点,但生态系统限制和高学习成本是挑战。开发者可借助 SwiftUI、Combine 等工具,配合React Native、Flutter、Xamarin等框架实现跨平台。Swift 不是独立的跨平台框架,但能与其他框架结合使用,适用于不同项目需求。
641 0
|
Linux 网络安全
suse 12 升级 OpenSSH-7.2p2 到 OpenSSH-8.4p1
suse 12 升级 OpenSSH-7.2p2 到 OpenSSH-8.4p1
595 0
|
容器 Docker Linux
如何将当前用户添加到Docker组?
【7月更文挑战第25天】
3588 2
如何将当前用户添加到Docker组?
|
弹性计算 算法 Java
一文说清linux system load averages
深入浅出阐释linux system load averages的语义,算法和计算流程,并分享了实际load飙高问题的排查经验和心得。
一文说清linux system load averages

热门文章

最新文章