#linux

概览

linux 提供了丰富的安全系统, 提供访问控制、审计、网络控制等服务。

访问控制

  • UGO
  • PAM
  • selinux
  • apparmor(ubuntu default)
  • ACL
  • chattr/lsattr
  • ulimit

审计

  • audit

网络控制

  • iptables
  • firewall

UGO

linux 是一个多用户操作系统, 某用户对其他用户文件的访问应该是被控制的, 否则会引起误删, 篡改, 窥探等问题。为了解决这个问题, linux 引入 UGO 机制, 使得文件对用户有不同的访问属性。

每个文件有以下示例类似的信息

- rw- rw- --- count_linked_to_inode user group

ugo 机制正是基于此设计访问控制:

  • 判断当前用户属于 user 、group, 还是 other, 据此获取访问属性
  • 根据文件类型和访问属性判断是否有权执行某个动作

对文件可以执行的动作

  • 执行
  • 删除
  • 重命名
  • 复制
  • 进入
  • 列出子项
  • 增删子项

访问属性

访问属性有三种:

  • r
  • w
  • x(s/t)

分别对应 读、写、执行, 为了获得特殊的访问控制(suid, guid, sbit), 执行位也可以是 s 或者 t。

权限出现位置执行位标识用途
suid—here,---,---s S对可执行文件有效,授权执行权利
guid---,—here,---s S对可执行文件效果同 suid, 对目录, 该目录下文件自动归于目录相同的组
sbit---,----,—heret T对目录有效,限制删除移动其他用户的文件

rwx 属性对不同类型的文件有不同的意义

-tx- | 文件类型| 操作 ||||||||||||||||||| | | 读(cat) ||写(编辑)||执行|| 进入(cd)||列出子项(ls)||增删子项(touch, rm)||复制||删除||移动|| | |文件|文件夹|文件|文件夹|文件|文件夹|文件|文件夹|文件|文件夹|文件|文件夹|文件|文件夹|文件|文件夹|文件|文件夹| | :--------------: | :-----: | :-----: | | 普通文件 | rw?x?| 用不到|rwx?|用不到|rw?x|用不到|用不到||||||rw?x?|r?wx|r?w?x?|r?wx(rwx)|r?w?x?|r?wx| | 目录文件 | 用不到 ||||||用不到|r?w?x|用不到|rw?x?|用不到|r?wx|rw?x?|r?wx|r?w?x?|r?wx(rwx)|r?w?x?|r?wx| [权限]

  • 删除文件, 删除根目录则需要遍历文件夹权限, 故文件夹权限为 rwx
  • 同用户和同卷移动不改变文件属性

umask

可用 umask 查看和执行当前用的掩码, 以指定 ugo 默认权限。

-tx- |用户|最高权限||掩码| | |文件 |文件夹 | | |=|=|=|=| |一般|666|777|0002| |root|644|755|0022| [umask]

文件归属

每个文件都有一个所属用户和所属用户组, 因此 UGO 机制下, 文件对三类用户有不同的访问属性, 分别为:User, Group, Other。Other 是除去所属用户和所属用户组中用户之外的其他用户。