当前位置: 首页 > 编程笔记 >

Linux 中有效用户组和初始用户组的实现

穆歌者
2023-03-14
本文向大家介绍Linux 中有效用户组和初始用户组的实现,包括了Linux 中有效用户组和初始用户组的实现的使用技巧和注意事项,需要的朋友参考一下

先查看一下 /etc/group 文件:

[root@localhost /]# cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
...

这个文件的每一行代表一个用户组,以冒号分隔各个字段。共有4个字段,分别是:

  • ==用户组名称==
  • ==用户组密码==:通常不需要设置,这个设置通常是给“用户组管理员”是用的。
  • ==GID==:用户组 ID
  • ==此用户组支持的账号名称==:一个账号可以加入多个用户组,如果某个用户想要加入某个用户组,只需将该用户的用户名添加进这个字段中。

初始用户组

在 /etc/passwd 中用户对应的那一行的第4个字段(GID),就是初始用户组。当用户登录系统,立刻就拥有这个初始用户组的相关权限。

[root@localhost /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
...

有效用户组

有效用户组表示用户此时此刻所在的用户组是什么。在切换有效用户组之前,有效用户组就是初始用户组。

想要知道用户自己当前的有效用户组和支持的用户组(在 /etc/group 文件中第四字段包含此用户的用户组),使用 groups 即可。

[root@localhost /]# groups
root bin daemon sys adm disk wheel

在这个输出的信息中,第一个输出的用户组就是当前的有效用户组了(但是有些系统并不这么做)。

如果我以 touch 去创建一个新文件,那么这个文件的所有者为 root,而且用户组是 root(有效用户组)。

切换有效用户组:newgrp

使用 newgrp 命令可以切换有效用户组,注意只能切换当前账号支持的用户组。

假设当前用户支持 “test” 和 “foo” 这两个用户组。那么 newgrp test 和 newgrp foo 是有效的。其他的都是无效的。

这个转换的背后原理是创建一个新的 shell,如果要恢复到前一个用户组需要用 exit 或 Ctrl+D 来注销当前的 shell 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 主要内容:Linux用户和组的关系Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。 例如,某台 Linux 服务器上有 4 个用户,分别是 root、www、ftp 和 mysql,在同一时间内,root 用户可能在查看系统日志、管理维护系统;www 用户可能在修改自己的网页程序;ftp 用户可能在上传软件到服务器;mysql 用户可能在执行自己

  • 通过学习用户和群组我们知道,群组可以让多个用户具有相同的权限,同时也可以这样理解,一个用户可以所属多个群组,并同时拥有这些群组的权限,这就引出了 初始组(有时也称 主组)和 附加组。 《 Linux etc/passwd》一节中,已经对用户所属初始组和附加组的概念进行了简单介绍,本节对初始组和附加组做更详细的介绍。 /etc/passwd 文件中每个用户信息分为 7 个字段,其中第 4 字段(GI

  • 主要内容:newgrp命令的底层实现我们知道,每个用户可以属于一个初始组(用户是这个组的初始用户),也可以属于多个附加组(用户是这个组的附加用户)。既然用户可以属于这么多用户组,那么用户在创建文件后,默认生效的组身份是哪个呢? 当然是初始用户组的组身份生效,因为初始组是用户一旦登陆就获得的组身份。也就是说,用户的有效组默认是初始组,因此所创建文件的属组是用户的初始组。那么,既然用户属于多个用户组,能不能改变用户的初始组呢?使用命令

  • 基本命令 命令 说明 id id USER 显示当前登录用户信息,或指定用户信息 ps au 显示当前 shell 下所有的进程及关联的用户 useradd username 创建一个用户 userdel username 删除用户 userdel -r username 删除用户并且删除相关的 home 目录 passwd username 给用户设定密码 groupadd groupname

  • 本文向大家介绍详解Linux添加/删除用户和用户组,包括了详解Linux添加/删除用户和用户组的使用技巧和注意事项,需要的朋友参考一下 本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。废话不多说,下面我们来看一下。 1、建用户: adduser phpq                             //新建phpq用户 passwd phpq            

  • 问题内容: 如何列出Linux中某个组的所有成员(可能还包括其他unice)? 问题答案: 不幸的是,据我所知,没有很好的便携式方法可以做到这一点。如果您尝试解析/ etc / group(如其他人所建议的那样),则会错过以该组为主要组的用户以及通过UNIX平面文件(例如LDAP,NIS, pam-pgsql等)。 如果我绝对必须自己做,则可能相反:使用来获取系统上每个用户的组(这将使NSS看到所