Linux权限控制的基本原理
《Linux权限控制的基本原理》要点: 本文主要介绍 Linux 系统中,权限控制的基本原理. 安全模型在 Linux 系统中,我们所有的操作实质都是在进行进程访问文件的操作.我们访问文件需要先取得相应的访问权限,而访问权限是通过 Linux 系统中的安全模型获得的. 对于 Linux 系统中的安全模型,我们需要知道下面两点:
注意,MAC 和 DAC 不是互斥的,DAC 是最基本的安全模型,也是通常我们最常用到的访问控制机制是 Linux 必须具有的功能,而 MAC 是构建在 DAC 之上的加强安全机制,属于可选模块.访问前,Linux 系统通常都是先做 DAC 检查,如果没有通过则操作直接失败 ; 如果通过 DAC 检查并且系统支持 MAC 模块,再做 MAC 权限检查. 为区分两者,我们将支持 MAC 的 Linux 系统称作 SELinux,表示它是针对 Linux 的安全加强系统. 这里,我们将讲述 Linux 系统中的 DAC 安全模型. DAC 安全模型DAC 的核心内容是:在 Linux 中,进程理论上所拥有的权限与执行它的用户的权限相同.其中涉及的一切内容,都是围绕这个核心进行的. 用户和组 ID 信息控制用户、组、口令信息 通过 /etc/passwd 和 /etc/group 保存用户和组信息,通过 /etc/shadow 保存密码口令及其变动信息,每行一条记录. 用户和组分别用 UID 和 GID 表示,一个用户可以同时属于多个组,默认每个用户必属于一个与之 UID 同值同名的 GID . 对于 /etc/passwd,每条记录字段分别为 用户名: 口令(在 /etc/shadow 加密保存):UID:GID(默认 UID): 描述注释: 主目录: 登录 shell(第一个运行的程序) 对于 /etc/group,每条记录字段分别为 组名:口令(一般不存在组口令):GID:组成员用户列表(逗号分割的用户 UID 列表) 对于 /etc/shadow,每条记录字段分别为: 登录名: 加密口令: 最后一次修改时间: 最小时间间隔: 最大时间间隔: 警告时间: 不活动时间: 举例 以下是对用户和组信息的举例. /etc/shadow 中的口令信息为加密存储,不举例. 文件权限控制信息文件类型 Linux 中的文件有如下类型:
访问权限控制组 分为三组进行控制:
可设定的权限 下面给出常见(但非全部)的权限值,包括:
举例 通过 ls -l 可以查看到其文件类型及权限,通过 chmod 修改权限. 举例来说, 输出中,第 1 个字符表示文件类型,其中,普通文件 (-)、目录文件 (d)、套接字文件 (s),管道文件 (p),字符文件 (c),块文件 (b),链接文件 (l); 第 2 个字符开始的 -rwxr-xr-x 部分表示文件的权限位,共有 9 位. 对于文件 /usr/bin/qemu-i386,这个权限控制的含义是:
对于 test/,test2/,test3/ 设定的权限:
进程权限控制信息进程权限 对于进程,有如下属性与文件访问权限相关:
举例 我们可以使用 ps 和 top 选择查看具有 euid 和 ruid 的进程.或者通过 top 来查看进程的 euid 和 ruid 通过 top 来查看的例子: 首先输入 top 得到类似如下 这里通过 -d 选项延长 top 的刷新频率便于操作.此处可见,只有 USER 字段,表示相应进程的 effective user id. (编辑:ASP站长网) |