ITPub博客

首页 > 数据库 > 数据库开发技术 > Linux权限的原理说明

Linux权限的原理说明

原创 数据库开发技术 作者:步步运维步步坑 时间:2023-12-15 11:53:00 0 删除 编辑

安全模型

在 Linux 系统中,我们所有的操作实质都是在进行进程访问文件的操作(Linux一切皆是文件)。访问文件必须先取得相应的访问权限(srwx),而访问权限是通过 Linux 系统中的安全模型获得的

Linux 系统上最初的安全模型叫 DAC--- Discretionary Access Control(自主访问控制),后来又增加设计了一个新的安全模型叫 MAC, 全称是 Mandatory Access Control(强制访问控制) 但是 MAC 和 DAC 不是互斥的, DAC 是最基本的安全模型,也是我们最常用到的访问控制机制,属于LInux必须功能, 而 MAC 是构建在 DAC 之上的加强安全机制,属于可选模块

在我们进行Linux权访问前, Linux 系统通常都是先做 DAC 检查, 如果没有通过则操作直接失败 ,如果通过 DAC 检查并且系统支持 MAC 模块,再做 MAC 权限检查

MAC安全模型

macOS 采用了多层次的安全模型,以确保系统和用户数据的完整性和机密性

主要组成

用户身份验证和权限

用户帐户(USER)

  • 每个用户都有唯一的用户标识符(UID)和组标识符(GID)。

  • 用户信息存储在 /etc/passwd 文件中,定义了用户名、UID、默认shell等。

用户组(GROUP)

  • 用户可以属于一个或多个用户组,决定了对文件和资源的访问权限。

  • 组信息存储在 /etc/group 文件中。

文件和目录权限(ugo)

  • 文件和目录有基本的Unix权限,包括所有者、组和其他用户权限。

  • 通过 chmod 命令,用户可以控制文件和目录的读、写和执行权限。

访问控制列表(ACLs)

  • 访问控制列表(ACLs)允许更灵活地定义文件和目录的权限。

  • 使用 setfacl 命令,用户可以为特定用户或组添加或删除额外的权限。

System Integrity Protection (SIP)

  • SIP保护系统文件和进程,限制对某些系统目录和文件的写入权限。

  • 防止未经授权的修改,即使是超级用户也无法直接更改。

FileVault

  • FileVault是MAC的全磁盘加密工具,确保数据在磁盘上的存储是加密的。

  • 提供对整个磁盘上的数据的保护,即使设备丢失也能保持机密性。

沙盒

  • 沙盒是一种安全机制,限制应用程序的权限,确保它们只能访问其授权的资源。

  • 有助于防止应用程序对系统和其他应用程序造成潜在的威胁。

防火墙

  • MAC具有内置的防火墙,用于监控和控制网络流量。

  • 用户可以配置防火墙规则以允许或阻止特定端口的流量。

Keychain

  • Keychain是MAC中的密码管理工具,用于安全地存储和检索密码、证书和其他敏感信息。

  • 提供一个加密的数据库,为用户提供单一点的身份验证。

DAC 安全模型

核心内容

在 Linux 中,进程理论上所拥有的权限与执行它的用户的权限相同

用户和组 ID 信息控制

通过 /etc/passwd 和 /etc/group 保存用户和组信息,通过 /etc/shadow 保存密码口令及其变动信息

描述注释: 主目录: 登录 shell(第一个运行的程序)

用户ID为UID,组ID为GID

对于 /etc/group


注释:GID:组成员用户列表(逗号分割的用户 UID 列表)

对于 /etc/shadow

注释:登录名: 加密口令: 最后一次修改时间: 最小时间间隔: 最大时间间隔: 警告时间: 不活动时间:

文件权限控制信息

文件类型

Linux 中的文件类型:

  • 普通文件:又包括文本文件和二进制文件, 可用 touch 创建;

  • 套接字文件:用于网络通讯,一般由应用程序在执行中间接创建;

  • 管道文件:又名管道, 可用 mkfifo 创建;

  • 字符文件和块文件:均为设备文件, 可用 mknod 创建;

  • 链接文件:分为是软链接文件,而非硬链接文件, 可用 ln 创建。

访问权限控制组

分为三组进行控制:

  • user 包含对文件属主设定的权限

  • group 包含对文件属组设定的权限

  • others 包含对其他者设定的权限

可设置的权限

常见(但非全部)的权限述职, 包括:

  • r :读权限-4。

  • w :写权限-2。

  • x -1:一般针对可执行文件 / 目录,执行 / 搜索权限。

  • s :一般针对可执行文件 / 目录,赋予文件属主权限的权限,只有 user 和 group 组可以设置该权限。

  • t :一般针对目录,设置粘滞位后,有权限的用户只能写、删除自己的文件, 否则可写、删除目录所有文件

举例

ls -la 查看文件类型和权限,chmod修改其权限

输出解释:

第 1 个字符表示文件类型,其中,普通文件 (-)、目录文件 (d)、套接字文件 (s),管道文件 (p),字符文件 (c),块文件 (b),链接文件 (l)

第 2 个字符开始的 -rwxr-xr-x 部分表示文件的权限位,共有 9 位。

对于文件test, 这个权限控制(644)的含义是:

  1. 第 1~4 位:-r-w 表示该文件可被它的 owner (属主)以 r 或 w 的权限访问。

  2. 第 5~7 位:r-- 表示该文件可被与该文件同一属组的用户以 r  的权限访问

  3. 第 8~10 位:r-- 表示该文件可被其它未知用户以 r  的权限访问。

进程权限控制信息

对于进程,有如下属性与文件访问权限相关:

  • effective user id : 进程访问文件权限相关的 UID (简写为 euid )。

  • effective group id : 进程访问文件权限相关的 GID (简写为 egid )。

  • real user id : 创建该进程的用户登录系统时的 UID (简写为 ruid )。

  • real group id : 创建该进程的用户登录系统时的 GID (简写为 rgid )。

  • saved set user id : 拷贝自 euid 。

  • saved set group id : 拷贝自 egid 。

举例

我们通过 top 来查看进程的 euid 和 ruid

此处可见,只有 USER 字段,表示相应进程的 effective user id.

打开 read user id 的显示选项:

a. 在 top 命令运行期间,输入 f, 可以看见类似如下行:

b.上下键移动,d确认,w保存

c.esc 返回即可看到

进程访问文件的权限控制策略

对于进程访问文件而言,最重要的是 euid

  • 进程的 euid 一般默认即为 其 ruid 值

  • 若可执行文件的可执行权限为 s ,进程对其调用 exec 后,其 euid 被设置为该可执行文件的 user id;

  • 进程的 saved set user id 拷贝自 euid;

  • 当进程的 euid 与文件的 user id 匹配时,进程才具有文件 user 权限位所设置的权限;

  • 组权限 egid 的控制规则类似;

通过 exec 执行文件修改权限属性

  • 进程 ruid 值始终不变;

  • saved set-user ID 始终来自 euid ;

  • euid 值取决于文件的 set-user-ID 位是否被设置;

如下:

通过 setuid(uid) 系统调用修改权限属性

通过 setuid(uid) 修改权限属性之时:

  • 超级管理员可顺利修改 ruid, euid, saved set-user ID ;

  • 未授权用户只能在 uid 与 ruid 相等时修改 euid, 其它无法修改;

举例

含义解释:

  • 第 1~3 位:rws 表示该文件可被它的 owner(属主)以 r 或 w 或 s 的权限访问;

  • 第 4~6 位:r-x 表示该文件可被与该文件同一属组的用户以 r 或 x 的权限访问;

  • 第 7~9 位:r-x 表示该文件可被其它未知用户以 r 或 x 的权限访问;

这样设置之后,对于 owner,具有读、写、执行权限,普通用户进程执行 sudo 命令时通过其 others 中的 x 获得执行权限,再通过 user 中的 s 使得普通用户进程临时具有了 sudo 可执行文件属主 ( root ) 的权限,即超级权限。

设置了 stick-bit

途中权限对于 /tmp 目录,任何人都具有读、写、执行权限,对于 others 部分设置了粘滞位 t

若目录没设置粘滞位,任何对目录有写权限者都则可删除其中任何文件和子目录,即使他不是相应文件的所有者,也没有读或写许可;

设置粘滞位后,用户就只能写或删除属于他的文件和子目录。

这就是为什么任何人都能向 /tmp 目录写文件、目录,却只能写和删除自己拥有的文件或目录的原因

添加博主

微信号|yfq940-

原文作者:步步运维步步坑;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-10-08

  • 博文量
    100
  • 访问量
    51722