Linux进程管理与权限控制技术详解
1. 以文件所有者权限运行普通应用
在Linux系统中,每个进程都由特定用户运行。以passwd命令为例,它用于修改/etc/passwd文件中的密码条目,而该文件只有其所有者(通常是root用户)才能写入。那么,passwd命令是如何更新/etc/passwd文件的呢?关键在于使用chmod实用程序,为应用赋予文件所有者的权限。
1.1 设置文件权限
在Linux中,使用以下命令可以让应用以文件所有者的权限运行:
chmod u+s <filename>此命令会使应用在文件所有者的权限下运行。由于该操作可能带来潜在风险,只有文件所有者或系统管理员才能执行。这通常被称为为用户设置粘滞位。
1.2 真实用户与有效用户
应用运行时会涉及两个用户:
-真实用户:最初运行应用的用户。
-有效用户:权限被更改后的用户。
在Kylix应用中,可以使用getuid函数获取真实用户ID,使用geteuid函数获取有效用户ID,示例代码如下: