当前位置: 首页 > news >正文

UID和GID的区别

        UID(用户标识符)和 GID(组标识符)是 Linux/Unix 系统中用于管理用户和组权限的核心机制,它们的区别主要体现在作用对象和用途上:


目录

1. 定义与作用对象

2. 主要用途

3. 系统保留范围

4. 用户与组的关联

5. 实际应用示例

文件权限

命令操作

6. 总结


1. 定义与作用对象

  • UID(User IDentifier)
    唯一标识系统中的用户,每个用户对应一个数字 ID。
    例如:root 用户的 UID 是 0,普通用户(如 alice)的 UID 通常从 1000 开始。

  • GID(Group IDentifier)
    唯一标识系统中的用户组,每个组对应一个数字 ID。
    例如:root 组的 GID 是 0,普通组(如 developers)的 GID 通常从 1000 开始。


2. 主要用途

  • UID

    • 决定用户对系统资源的访问权限(如文件、进程)。

    • 系统通过 UID 判断进程的所有者(例如:ps -aux 显示进程归属用户)。

  • GID

    • 管理一组用户的共享权限,简化权限分配。

    • 文件的所属组决定了组成员对该文件的权限(如读/写/执行)。


3. 系统保留范围

  • UID

    • 0:超级用户(root)的 UID。

    • 1–999(或 1–499,依发行版而定):系统服务/守护进程的保留 UID。

    • 1000+:普通用户的 UID。

  • GID

    • 0:root 组的 GID。

    • 1–999(或 1–499):系统保留组。

    • 1000+:普通用户组的 GID。


4. 用户与组的关联

  • 每个用户必须属于至少一个组(主组,即 primary group),对应一个 GID(在 /etc/passwd 中定义)。

  • 用户可加入多个附加组(在 /etc/group 中定义),继承这些组的权限。


5. 实际应用示例

文件权限

-rw-r--r-- 1 alice developers 2048 Jan 1 10:00 file.txt
  • UID 对应:用户 alice(假设 UID=1001)是文件的所有者,拥有读写权限。

  • GID 对应:组 developers(GID=1002)的成员拥有读权限。

命令操作

  • 查看用户的 UID/GID:

    id alice  # 输出 uid=1001(alice) gid=1002(developers) groups=1002(developers),1003(admins)
  • 修改文件所有者(UID):

    sudo chown alice file.txt
  • 修改文件所属组(GID):

    sudo chgrp developers file.txt

6. 总结

特性UIDGID
作用对象用户用户组
权限核心用户身份验证组内共享权限
系统保留值0(root)和 1–9990(root组)和 1–999
典型用途控制用户对资源的独占访问权管理多个用户的协作访问权

通过 UID 和 GID,系统实现了灵活的多用户权限管理机制。

http://www.xdnf.cn/news/42463.html

相关文章:

  • optool为macho文件增加动态库
  • React+TS编写轮播图
  • FreeSWITCH 简单图形化界面41 - 批量SIP视频呼叫测试
  • 游戏引擎学习第237天:使用 OpenGL 显示图像
  • 绝对路径与相对路径
  • 【C++】多态 - 从虚函数到动态绑定的核心原理
  • HTTP:十.cookie机制
  • Kotlin实现Android应用保活方案
  • 基于maven-jar-plugin打造一款自动识别主类的maven打包插件
  • 【C++详解】C++入门(一)
  • PyTorch 深度学习实战(39):归一化技术对比(BN/LN/IN/GN)
  • 基于Docker+k8s集群的web应用部署与监控
  • 操作系统是如何运行的?
  • 【图像处理基石】什么是去马赛克算法?
  • 维普期刊(瑞数6)分析
  • 什么是 IDE?集成开发环境的功能与优势
  • iOS 应用性能测试工具对比:Xcode Instruments、克魔助手与性能狗
  • 指针(3)
  • 常用算法解析:从基础排序到图论应用
  • 【Hot100】 240. 搜索二维矩阵 II
  • 霍尔三维结构
  • QML中日期处理类
  • prim最小生成树+最大生成树【C++】板子题
  • 缓存 --- 缓存击穿, 缓存雪崩, 缓存穿透
  • 【连接池-55】MySQL数据库连接池:原理、实现与最佳实践
  • 缓存 --- Redis的三种高可用模式
  • 14【结构体 Struct】定义、实例化与方法:封装数据与行为
  • css3新特性第三章(文本属性)
  • Linux下加载可执行文件所在目录下的so的方法
  • 实操基于MCP驱动的 Agentic RAG:智能调度向量召回或者网络检索