UNIX系统中的用户信息与时间管理
1. 用户信息管理
在UNIX系统中,每个用户都有一系列相关信息,这些信息大多存储在 /etc/passwd 密码文件和 /etc/group 组文件中。下面详细介绍这些信息。
1.1 登录名
每个用户都有一个唯一的登录名,该名称最多由8个字符组成,通常只允许使用小写字母和数字。用户在登录系统时使用登录名来标识自己,同时在发送电子邮件、标记行式打印机输出等场景中也会用到。操作系统内核并不使用登录名,它仅由用户级程序使用。
获取用户登录名可以使用 getlogin 例程,该例程返回一个指向包含用户登录名的字符串指针,如果失败则返回 NULL 。不过, getlogin 通过搜索 /etc/utmp 文件来获取登录名,这种方法容易出错,例如用户已注销或更改了有效用户ID。System V 提供了 cuserid 函数来替代 getlogin ,它的出错概率更低。
1.2 用户ID
系统中的每个进程都关联着两个整数:真实用户ID和有效用户ID。操作系统内核使用这些ID来确定进程的访问权限、记录会计信息等。真实用户ID始终标识执行进程的用户,只有超级用户可以更改自己的真实用户ID。有效用户ID用于确定进程的权限,通常情况下,有效用户ID等于真实用户ID。通过更改有效用户ID,进程可以获得与新用户ID相关的权限。
获取真实用户ID和
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



