详解Linux初始组和附加组

yizhihongxing

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内核模块管理(查看、添加和删除)

    首先,我们需要了解几个概念: 内核模块(Kernel module):是一种能够被动态加载到内核中,并在运行时添加到内核的代码。 内核符号(Kernel symbol):是内核函数、变量等全局符号的名称,可以被内核模块使用。 modprobe:是Linux系统上的一个工具,用于动态加载和卸载内核模块。 下面详细讲解Linux内核模块管理的完整攻略: 查看内核…

    Linux启动管理 2023年3月25日
    00
  • 详解Linux who命令:显示当前登录用户

    Linux who 命令用于显示当前登录系统的用户信息,包含用户名、登录时间、登录位置等信息。下面是 who 命令的使用方法和攻略。 命令语法 who 命令的基本语法如下: who [OPTION]… [FILE]… 命令选项 who 命令支持的选项有: -H:显示各列标题。 -a, –all:显示所有的登录信息,包括空闲的终端。 -b, –bo…

    Linux函数大全 2023年3月24日
    00
  • 详解Linux UID和GID

    在Linux系统中,UID和GID都是用户和组的唯一标识符,分别表示用户ID和组ID。 UID UID是Linux系统中用来标识用户的唯一ID。对于每个用户来说,都有一个对应的UID,用于表示该用户在系统中的身份和权限。UID一般是一个数字,是由系统管理员分配的。每个系统都有一个唯一的UID号码段。 在Linux系统中,普通用户的UID号通常从1000开始,…

    Linux用户和用户组管理 2023年3月25日
    00
  • 详解磁盘如何设置挂载参数usrquota和grpquota

    磁盘挂载参数 usrquota 和 grpquota 可以用来限制用户和用户组的磁盘使用空间。在使用这两个参数之前,需要进行以下几个步骤: 首先需要使文件系统支持 quota 功能。可以在挂载磁盘时使用 mount 命令的 remount 选项来为磁盘启用 quota: mount -o remount,usrquota,grpquota /dev/sda1…

    Linux高级文件系统管理 2023年3月25日
    00
  • 详解Linux apropos命令:查找命令的文档

    Linux apropos 命令是一种非常有用的工具,它可以帮助用户快速查找 Linux 系统中已安装的命令、函数、配置文件等的帮助文档。下面我将为大家详细讲解 apropos 命令的作用和使用方法,并附上两个具体的使用示例。 作用 apropos 命令的作用是根据指定的关键字,在系统的帮助文档中查找与之相关的命令、函数、库等信息。通常情况下,我们在掌握某个…

    Linux函数大全 2023年3月24日
    00
  • Linux tar命令备份数据

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

    Linux备份与恢复 2023年3月25日
    00
  • 详解Linux htop命令:交互式进程监视器

    下面是关于Linux htop命令的完整攻略: htop命令概述 htop是一种交互式进程查看器,它可以在Linux系统中显示所有进程及其组织方式。它比标准的top命令更加强大和直观,提供了更多的选项和功能。 使用htop命令可以查看进程的CPU、内存、带宽等资源使用情况,以及对每个进程的操作,例如杀死、暂停或调试它们。 htop命令的安装 使用Ubuntu…

    Linux函数大全 2023年3月24日
    00
  • Linux Apache安装过程详解(LAMP环境搭建)

    安装Linux Apache MySQL PHP (LAMP) 环境是网站搭建的首要步骤之一,本文将介绍在CentOS 7中安装和配置LAMP环境的步骤。 安装Apache 使用如下命令安装Apache: sudo yum install httpd 启动Apache服务: sudo systemctl start httpd.service 验证Apach…

合作推广
合作推广
分享本页
返回顶部