详解Linux初始组和附加组

Linux中的初始组是指用户在创建时默认属于的用户组,通常与用户名同名;而附加组则是在初始组之外用户可以加入的组。初始组和附加组在很多情况下都有重要的应用场景。

初始组的作用

权限控制

在Linux中,文件和目录的访问权限由所属用户和所属用户组决定。用户文件默认的所属组就是初始组。因此,初始组可以控制该用户对于同组成员创建的文件和目录的访问权限。如果一些用户在同一个组内,他们可以相互修改和删除彼此的文件(当然,文件和目录的访问权限要允许这样的操作)。

设置默认用户组

在Linux中,sudo和su等命令在执行时会默认使用用户所在的初始组。如果希望在执行sudo命令时使用与当前用户不同的用户组,则需要使用“-g”选项,加上对应的组名称。例如,将使用seetest组执行sudo命令:

sudo -g seetest command

附加组的作用

同组共享

一个用户可以加入多个附加组,这样他就可以与其它组的成员共享同组的文件和目录。附加组默认不会影响初始组的权限控制。

运行某些命令时临时指定组权限

某些情况下需要在执行命令时暂时更改当前用户的组。可以使用“newgrp”命令来实现,它会临时将当前用户的附加组设置为指定组。例如:

# 取消当前用户的'group1'附加组
$ id
uid=1000(example) gid=1000(example) groups=1000(example),1001(group1),1002(group2)
$ newgrp group2
# 临时将当前用户的附加组改为'group2'
$ id
uid=1000(example) gid=1000(example) groups=1000(example),1001(group1),1003(group3),1004(group2)

使用示例

初始组

查看初始组

可以在终端中使用“id”命令查看当前用户的初始组:

$ id -gn
example

其中,-g选项表示获取初始组名称,-n选项用于显示组名称而不是ID。

更改用户的初始组

更改用户的初始组只能通过修改/etc/passwd文件来实现。需要先关闭当前用户的所有进程,然后使用“usermod”命令修改用户的组:

# 关闭当前用户的所有进程
$ pkill -u example
$ usermod -g newgroup example

其中,-g选项用于指定新的初始组名称,example是用户名。

附加组

查看用户的附加组

使用“id”命令可以同时查看用户的初始组和附加组:

$ id
uid=1000(example) gid=1000(example) groups=1000(example),1001(group1),1002(group2)

其中,groups后跟随的是用户的所有附加组的ID。

将用户加入附加组

使用“usermod”命令可以将用户加入附加组:

$ sudo usermod -a -G group_name example

其中,-a选项表示将用户加入而不是替换之前的组,-G选项用于指定组名称,example是用户名。

使用附加组

使用“newgrp”命令可以临时更改当前用户的附加组:

# 在group2组内执行命令
$ newgrp group2
$ id
uid=1000(example) gid=1000(example) groups=1000(example),1001(group1),1004(group2)

使用“sg”命令也可以实现类似的效果,不同之处在于“sg”命令执行完命令后会回到原始组。例如:

$ sg group2 -c 'id; command'

其中,group2是指定组的名称,-c选项后面是需要执行的命令。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Linux初始组和附加组 - Python技术站

(0)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • Linux tar命令备份数据

    当需要对文件或目录进行系统备份、文件归档、压缩等操作时,Linux系统中tar命令是最常用的工具之一。下面我将详细讲解tar命令的作用和使用方法,为大家提供一个完整的攻略。 一、Linux tar命令作用 tar命令能够将指定的目录或文件进行打包,并可以通过各种压缩算法将它们进一步压缩成一个单独的文件,以及解压打包后的文件,实现对文件进行存储、归档和备份等功…

    Linux备份与恢复 2023年3月25日
    00
  • 详解Linux RPM包统一命名规则

    Linux下的RPM包是一种将一组文件打包成单个文件的打包工具,是方便软件的安装、更新和管理的一种工具。 在Linux RPM包统一命名规则中,正确的名称应该遵循以下格式: name-version-release.architecture.rpm name:软件包的名称 version:软件包的版本号 release:软件包发行的次数 architectu…

    Linux软件安装 2023年3月25日
    00
  • 详解Linux mkfs命令:格式化磁盘

    下面是Linux中mkfs命令的作用和使用方法的完整攻略。 1. 命令作用 mkfs是Linux下的一个命令,用于格式化指定的文件系统。在Linux系统中,如果要使用某个设备或分区作为文件系统使用,那么必须先将其格式化为相应的文件系统格式,这就是mkfs命令的作用。 2. 使用方法 mkfs命令的基本使用方法如下: mkfs [-t 文件系统类型] [-V]…

    Linux函数大全 2023年3月24日
    00
  • Linux rsyslogd服务及启动方法(详解版)

    作为一种重要的日志记录和分发服务,rsyslogd在Linux系统中被广泛应用。下面是rsyslogd的详细介绍及启动方法攻略: 简介 rsyslogd是一个开源的系统事件日志(syslog)服务,提供可扩展、高性能、多线程日志记录和分发功能,拥有丰富的配置选项和插件接口,支持本地事件存储、转发和远程日志存储功能。 rsyslogd服务的安装 Debian/…

    Linux系统日志管理 2023年3月25日
    00
  • 详解Linux chgrp命令:修改文件所属组

    下面我来详细讲解一下Linux chgrp命令。 简介 Linux chgrp命令用于修改文件或目录所属的用户组。 语法 chgrp [-R] groupname dirname/filename 参数说明 -R :递归处理,将指定目录下的所有文件及子目录一并处理。 groupname :指定新的用户组。 dirname/filename:指定要修改用户组的…

    Linux函数大全 2023年3月24日
    00
  • 详解Linux LVM(逻辑卷管理)的删除

    当你需要删除一个 Linux LVM (逻辑卷管理)时, 需要执行以下几个步骤: 确认卸载逻辑卷的挂载点 在 LVM 系统中,逻辑卷(也被称为 LV)常常会被挂载到树上的一个挂载点。因此在删除 LVM 之前,你需要确认该 LVM 卸载挂载点上是否还有其他的文件(比如说,还有文件被打开),如果有需要先停止相关的进程。 停止LVM的卷组 在删除 LVM 的过程中…

    Linux高级文件系统管理 2023年3月25日
    00
  • Linux parted命令用法详解:创建分区

    Linux parted是一个分区工具,可以用于分割硬盘或创建新分区。它支持许多分区方案,如MBR(Master Boot Record)、GPT(GUID Partition Table)等,并且能够操作Linux和Windows系统。 以下是使用parted命令的详细步骤: 确定待分区的硬盘设备名称 在终端中,使用以下命令列出所有的硬盘设备及其大小: s…

    Linux文件系统管理 2023年3月25日
    00
  • 详解Linux /etc/shadow

    /etc/shadow是一个系统文件,存储了Linux操作系统用户账户的安全相关信息,包括加密后的用户密码、密码过期时间、账户是否被锁定等。本文将详细介绍/etc/shadow的作用和使用方法,并给出相关示例说明。 1.作用 /etc/shadow文件用于保护用户密码的安全性,存储的是加密后的密码。在Linux系统中,普通用户可以访问/etc/passwd文…

    Linux用户和用户组管理 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部