Linux系统用户组关联机制及利用Newgrp切换初始组方法

冬丽酱_3093

冬丽酱_3093

2026-03-14

426人浏览

原创

Linux中用户的初始组由/etc/passwd第四字段定义,决定新建文件默认属组,需用usermod -g永久修改;newgrp仅临时切换当前shell的有效组,不改变初始组。

linux系统用户组关联机制及利用newgrp切换初始组方法

Linux 中每个用户都有一个初始组(primary group),它在用户创建时自动设定,通常与用户名同名。这个组决定用户新建文件的默认所属组,也影响某些权限行为。要修改用户的初始组,不能仅靠 newgrp 命令——它只能临时切换当前 shell 的有效组(effective group),不会改变初始组本身。

初始组与附加组的区别

初始组是用户登录时自动获得的主属组,记录在 /etc/passwd 第四字段;附加组(secondary groups)则列在 /etc/group 中,通过 usermod -aG 添加。新建文件的组所有权默认使用初始组,而非当前 effective group。

  • 查看当前用户的初始组:执行 id -gn 或看 /etc/passwd 对应行第4个字段
  • 查看所有所属组(含附加组):运行 groups 或 id -Gn
  • 初始组无法通过 newgrp 永久更改,它只影响当前 shell 会话的 effective group

用 newgrp 临时切换 effective group

newgrp 命令会启动一个新 shell,将指定组设为当前会话的 effective group。这对需要以某组身份创建文件或访问组权限资源时很实用,但退出 shell 后即失效。

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
  • 切换到用户所属的某个附加组:newgrp devteam
  • 切换回初始组:newgrp -(注意短横线)
  • 要求目标组必须已在 /etc/group 中存在,且当前用户是该组成员(可通过 usermod -aG 提前添加)
  • 不支持密码验证的组(即 /etc/gshadow 中无密码字段)可直接切换;若设置了组密码,需输入密码

真正修改初始组的方法

要永久变更用户的初始组,必须更新 /etc/passwd 文件中的 GID 字段,并确保对应组存在。推荐使用 usermod 工具,避免手动编辑出错。

  • 将用户 alice 的初始组改为 developers:sudo usermod -g developers alice
  • 执行后需用户重新登录才生效(包括 SSH、图形界面等),已有 shell 会话不受影响
  • 确保 developers 组已存在(可用 getent group developers 验证),否则命令失败
  • 修改后,该用户新建的所有文件默认属组都会变成 developers

常见误区与注意事项

很多用户误以为 newgrp 能“设置初始组”,其实它只是运行时的组上下文切换。初始组是账户级属性,和登录认证强绑定。

  • newgrp 不改变 /etc/passwd,也不影响其他终端或后续登录
  • 若目标组不在用户所属组列表中(groups 输出里没有),newgrp 会报错 “group does not exist”
  • 脚本中慎用 newgrp,因为它会启动子 shell,后续命令不在同一上下文中,常导致逻辑中断
  • 容器或 systemd 服务中,初始组由用户数据库决定,newgrp 一般不可用

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4370

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3673

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2953

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7270

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6902

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3953

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3445

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3679

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习