1 文件与目录的权限标识
1.1 权限标识:
用户ID,组ID;
setuid标志位,setgid标志位;
ugo三组用户对应的读写执行权限
1.2 操作:
读取:stat系列函数(stat,fstat,lstat)
更改:chown系列函数(chown,fchown,lchown)更改uid和gid;chmod系列函数(chmod,fchmod)更改setuid和setgid、ugo对应的读写执行权限
2 进程的标识
2.1 与进程关联的ID
实际用户ID 实际组ID | 进程实际是谁 |
有效用户ID 有效组ID 附加组ID | 用于文件访问权限检查 |
保存的设置用户ID 保存的设置组ID |
2.2 操作
2.2.1 读取:
getpid,getppid,getuid,geteuid,getgid,getegid,getgroups
2.2.2 更改:
setuid/setgid,seteuid/setegid (《Linux Programming by Example / 实战linux编程精髓》 有详细指南)
3 新文件和新目录的用户ID、组ID设置
父目录上的setgid标志位已清除:新文件和目录接受创建进程的有效GID。
父目录上的setgid标志位已设置:新文件和目录接受父目录的GID,新目录还继承setgid标志位。