详解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 pkill命令:终止进程,按终端号踢出用户

    Linux pkill命令的作用是基于进程名或进程号(PID)杀死进程。与kill命令不同的是,pkill会直接通过进程名或者其他指定的参数,杀死相关进程。 命令语法 pkill [-signal] [-fv] pattern 命令参数说明 -f:强制匹配全命令行行为而非仅匹配进程名称 -v:反选,即不匹配选项中所列的进程 -s:指定发送信号,默认是 TER…

    Linux系统管理 2023年3月25日
    00
  • 详解Linux uptime命令:显示系统运行时间和负载

    Linux下的uptime命令可以显示系统当前已经运行了多长时间,以及当前系统的平均负载情况。在系统出现问题时,通过uptime命令可以帮助我们了解当前系统的运行情况,以及是否存在过载情况。 语法 uptime [选项] 参数说明 -p, –pretty 在平均负载数字前增加文字 -s, –since 自BOOT以来的系统运行时间 –help 显示帮助…

    Linux函数大全 2023年3月24日
    00
  • 详解Linux重建RPM数据库

    在Linux系统中,RPM包管理器是一种常用的包管理工具,可以用于安装、更新、卸载软件包。在使用 RPM 包管理器时,可能会遇到 RPM 数据库损坏或出现错误的情况,这时需要进行 RPM 数据库的重建。 下面是重建 RPM 数据库的完整攻略: 步骤1:备份旧的 RPM 数据库 在进行 RPM 数据库重建之前,需要备份旧的 RPM 数据库以防出现意外情况。可以…

    Linux软件安装 2023年3月25日
    00
  • Linux mount命令详解:挂载Linux系统外的文件

    Linux中的mount命令是用于挂载文件系统的,它提供了访问文件系统的方法。在使用mount命令挂载文件系统时,我们需要了解以下几个方面: 设备文件 挂载点 文件系统类型 挂载选项 设备文件 在Linux中,一切皆文件。硬盘、U盘、CD/DVD都以文件形式存在于/dev目录中,这就是我们所说的设备文件。我们需要了解需要挂载的设备文件名,如/dev/sda1…

    Linux文件系统管理 2023年3月25日
    00
  • 详解Linux iwconfig命令:查看和配置无线网络接口

    下面是关于Linux iwconfig命令的作用及使用方法的详细攻略: iwconfig命令的作用 iwconfig命令是一个用于显示和配置Linux系统下无线网络接口的工具。它可以用来查看无线接口的当前配置信息,并且可以对其进行配置,如SSID,频率,加密等参数的设置。 iwconfig命令的使用方法 1.查看无线网络接口的信息 使用iwconfig命令可…

    Linux函数大全 2023年3月24日
    00
  • 详解Linux nc命令:网络工具,用于在两个主机之间传输数据

    nc 命令是一个功能强大的网络工具,它可以作为一个TCP/UDP的通讯工具,用于连接网络上的各种服务,它能够将任何两个端口之间的数据以二进制方式传输。下面将详细讲解 nc 命令的用法。 1. nc 命令的语法 nc [-lhknrsu][-g<网关…>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件&…

    Linux函数大全 2023年3月24日
    00
  • 详解Linux gpasswd命令用法:把用户添加进组或从组中删除

    gpasswd命令是Linux下的一个组管理工具, 用来管理群组账号, 添加或删除用户,以及指定组管理员。其作用类似于passwd命令,但是可以针对某个组来进行管理。 gpasswd命令的用法如下: gpasswd [-a user] [-d user] [-A file] [-M user1,user2…] [-r] group 下面是各个选项的含义:…

    Linux用户和用户组管理 2023年3月25日
    00
  • 详解Linux insmod命令:加载新的内核模块

    首先需要说明的是,insmod命令是用于向 Linux 操作系统内核中加载(insert)一个指定的动态链接库(.ko 文件),以实现特定功能的驱动程序或者模块。具体的步骤可以归纳为以下 4 个: 准备一个要加载的模块(.ko)文件。 确定需要加载的内核版本。 加载指定的模块文件。 检查是否加载成功。 在具体操作时,可以按照如下的格式输入命令: insmod…

    Linux函数大全 2023年3月24日
    00
合作推广
合作推广
分享本页
返回顶部