在 Linux 系统管理中,有时我们需要以某个特定用户组的身份运行命令,而不是当前用户的默认组。这时候,RockyLinux sg命令就派上用场了。本文将手把手教你如何使用 sg 命令来以其他组执行命令,即使你是 Linux 新手也能轻松掌握。
sg(switch group)是 Linux 中一个用于临时切换到指定用户组并执行命令的工具。它类似于 su(switch user),但作用对象是“组”而非“用户”。使用 sg 可以让你在不更改主用户身份的前提下,获得目标组的权限。
在多用户或多服务环境中,不同用户可能属于不同的组,而某些文件或目录只对特定组开放读写权限。例如:
www-data 组写入;dbadmin 组身份运行才能访问敏感数据;devs 组可写。此时,如果你不属于目标组,但系统管理员已将你加入该组(通过 /etc/group 配置),就可以使用 sg 临时切换组身份执行任务。
基本用法如下:
sg [组名] -c '要执行的命令' 或者启动一个交互式 shell:
sg [组名] 假设你有一个名为 project-team 的组,并且你已被添加到该组中。现在你想以该组身份创建一个文件。
groups 输出可能包含:youruser project-team docker,说明你确实在 project-team 组中。
sg project-team -c 'touch /shared/project/test.txt && ls -l /shared/project/test.txt' 如果成功,你会看到类似以下输出:
-rw-rw-r-- 1 youruser project-team 0 Apr 10 10:00 /shared/project/test.txt
注意:文件所有者仍是你的用户名,但所属组已变为 project-team,这正是我们想要的效果!
sg project-team# 此时你进入了一个新的 shell,组身份已切换id # 查看当前用户和组信息# 执行多个命令...exit # 退出回到原 shell groups 查看),sg 会报错 “cannot switch to group”。newgrp 才能使组变更生效。sg 不会提升 root 权限,它只是切换组上下文,不能绕过文件系统的 ACL 限制。通过本文,你已经掌握了在 RockyLinux 系统中使用 sg 命令来以其他组执行命令的核心技巧。无论是自动化脚本还是日常运维,sg 都是一个安全、灵活的工具。记住关键点:你必须是目标组的成员,且命令需用单引号包裹以避免 shell 提前解析。
希望这篇 Linux组权限切换 教程对你有帮助!如果你正在学习系统管理,不妨动手试试这些命令,加深理解。
—— 本文完 ——
本文由主机测评网于2025-12-10发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025125529.html