Linux系统权限检查与执行域管理解析
1. 权限检查相关内容
1.1 根文件系统访问检查
在Linux系统中,存在对根文件系统访问的检查机制。函数fsuser用于检查进程是否具有特定的文件系统访问权限,其代码如下:
extern inline int fsuser(void) { if (!issecure(SECURE_NOROOT) && current->fsuid == 0) { current->flags |= PF_SUPERPRIV; return 1; } return 0; }该函数的逻辑为:若SECURE_NOROOT安全设置未开启且当前进程的fsuid为0,则将当前进程标记为具有超级权限,并返回1;否则返回0。
1.2 安全设置检查
Linux正朝着一套系统级的安全设置方向发展,这些设置对所有进程有效,可将内核配置到适合其运行环境的安全级别。每个安全设置由两位实现,一位指定设置是开启还是关闭,另一位指定设置是否固定,固定设置不能从用户级别更改。目前定义了两个安全设置:
-SECURE_NOROOT:当第0位设置时,uid 0没有特殊权限,第1位指定该安全设置是否固定。
-SECURE_NO_SETUID_FIXUP