4、Linux系统编程基础与文件I/O详解

Linux系统编程基础与文件I/O详解

一、用户与组

在Linux系统中,授权机制是通过用户和组来实现的。每个用户都关联着一个唯一的正整数,即用户ID(uid)。每个进程都与一个uid相关联,这个uid标识了运行该进程的用户,被称为进程的真实uid。在Linux内核中,uid是用户的唯一标识,但用户之间通常使用用户名来相互指代,而不是使用数值。用户名及其对应的uid存储在 /etc/passwd 文件中,库函数会将用户提供的用户名映射为对应的uid。

登录时,用户向 login(1) 程序提供用户名和密码。如果用户名有效且密码正确, login(1) 程序会启动用户的登录shell,该shell的uid会被设置为用户的uid。子进程会继承其父进程的uid。

uid为0的用户是特殊用户 root root 用户拥有特殊权限,几乎可以在系统上执行任何操作,例如只有 root 用户可以更改进程的uid,因此 login(1) 程序以 root 用户身份运行。

除了真实uid,每个进程还有有效uid、保存的uid和文件系统uid。真实uid始终是启动进程的用户的uid,而有效uid可能会根据各种规则发生变化,以使进程能够以不同用户的权限执行。保存的uid存储原始的有效uid,用于决定用户可以切换到哪些有效uid值。文件系统uid通常等于有效uid,用于验证文件系统访问权限。

每个用户可以属于一个或多个组,包括

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值