分类
用户标识符:
几个典型进程的ID及其类型和功能
常见标识符的返回值
#include<sys/types.h>
#include<unistd.h>
pid_t getpid(void); //返回调用进程的ID
pid_t getppid(void); //返回调用进程的父进程ID
uid_t getuid(void); //返回调用进程的实际用户ID
uid_t geteuid(void); //返回调用进程的有效用户ID
pid_t getgid(void); //返回调用进程的实际组ID
pid_t getegid(void); //返回进程的有效组ID
总结:
(1)实际用户ID和实际用户组ID一般只是起标识作用;
(2)有效用户ID和有效用户组ID一般是与当前给定的文件权限有关系;
(3)通常情况下实际用户和有效用户ID值是相同的;
代码示例:
运行结果:
实际用户和有效用户的关系:
suid——设置用户ID
只能给拥有者的执行权限设置,凡是设置了用户id的人,执行该程序时都是以拥有者的执行者权限去运行
sgid——设置用户组ID
只能给拥有者的执行权限设置,凡是设置了用户id的人,执行该程序时都是以拥有者的所属组权限去运行
给文件加SUID和SGID的方法
chmod u+s filename 设置suid
chmod u-s filename 取消suid
chmod g+s filename 设置sgid
chmod g-s filename 去掉sgid