《网络安全自学教程》- Linux安全标识符、身份鉴别、访问控制

++《网络安全自学教程》++

操作系统有4个安全目标,也就是说想要保证操作系统的安全,就必须实现这4个需求:

  1. 标识系统中的用户和进行身份鉴别。
  2. 依据系统安全策略对用户的操作进行访问控制,防止用户和外来入侵者对计算机资源的非法访问。
  3. 审计系统运行的安全性。
  4. 保证系统自身的安全性和完整性。

Linux系统使用「安全标识符」、「身份鉴别」、「访问控制」这三个安全机制实现前两个需求。

Linux

1、Linux系统标识

Linux使用 UID 来标识安全主体。

UID 是一个0~65535之间的整数,用来唯一标识用户身份,用户身份有三种。

  • 超级用户(UID=0):超级管理员,默认只有root,拥有最高权限,完全控制系统。
  • 内置用户(UID=1~499):系统保留的特殊服务,用来运行系统服务或进程。
  • 普通用户(UID=500~65535):权限受限,usermod -u 0 username 可以通过修改用户UID的方式将普通用户提升为管理员权限,但这并不是完整的root权限,需要做其他配置和授权才能完全控制系统。

id 用户名 可以查看指定用户的UID。

cat /etc/passwd | grep :0 查看具有管理员权限的用户。

UID是单向自增的,我们可以使用 usermod -u [新UID] 用户名 修改用户的UID,但不能重复使用,即使那个UID已经没人用了。

从上一张图可以看到,新建的两个用户,UID分别是1000、1001,是自增的,这时候1001之前的UID都被用过了。

从下一张图可以看到,999这个UID已经用过了,无法设置给用户;1002这个UID还没用过,可以设置给用户。

2、Linux 身份鉴别

Linux使用文件来管理用户信息,也就是把用户信息保存在一个文件里,毕竟Linux的核心理念就是"一切结文件"。

Linux的用户账号保存在 /etc/passwd,密码加密后保存在/etc/shadow

cat /etc/passwd 查看用户账号信息,这个文件对所有用户可读,一行对应一个用户,用冒号分割字段。

字段从左到右依次是:

  1. root:用户名,大小写字母或数字组成,不超过位。
  2. x:密码,加密后放到/etc/shadow
  3. 0:用户标识(UID)。
  4. 0:用户组标识(GID)。
  5. root:注释,用来描述用户信息。
  6. /root:主目录(用户家目录),用户登录后默认进入主目录。
  7. /bini/bash:登录的shell。

cat /etc/shadow 查看用户密码信息,只有root可以查看,字段从左到右依次是:

  1. 用户名,与/etc/passwd一 一对应。
  2. 密码,使用DES+MD5加密后保存。如果为空,登录就不需要密码;*表示账号被锁定;!!表示密码过期;$6$开头,表示SHA-512加密;$1$开头,表示MD5加密;$2$开头,表示Blowfish加密;$5$开头,表示SHA-256加密。
  3. 最后一次修改时间,距离1970年1月1日有多少天。
  4. 最小时间间隔,两次修改密码之间的最小天数,0表示没有限制。
  5. 最大时间间隔,密码有效期,过期后需要修改密码,空或99999表示没有限制。
  6. 警告时间,密码过期提前多少天提醒,0表示没有限制。
  7. 账号闲置时间,密码过期后,仍然可以使用该密码登录的天数,空字段表示不强制过期。
  8. 失效时间,失效后锁定用户,禁止登录。
  9. 标志,一般不用。

扩展:设置/修改密码时,密码加密后,先由pwunconv将加密后的密码写到/etc/passwd,再由pwconv从/etc/passwd转换到/etc/shadow中。

3、Linux访问控制

Linux用 UGO 管理机制做访问控制。

UGO 是User、Group、0ther首字母的简写,它把文件的操作者分为三种

  1. U:文件属主权限
  2. G:文件属组权限
  3. O:其他组用户的权限

每种操作者拥有三种权限:读(r)、写(w)、执行(x)。

三种操作者的9种权限共同组成一个文件的完整权限。

ls 可以查看文件的属性,属性左边第二列显示文件的权限

在权限lrwxr-xr-x中,从左到右;

  • 第一位,表示文件类型
  • 第二三四位,表示属主的权限,这里的rwx表示文件属主有读写执行权限。
  • 第伍六七位,表示属组的权限,这里的r-x表示文件属组有读和执行权限。
  • 第八九十位,表示其他组用户权限,这里的r-x表示其他组对文件有读和执行权限。

权限的设置,可以参考我的另一篇文章 Linux修改文件权限

扩展:目录的权限与文件的权限含义有些不同:r 是可以查看目录中的内容,w 是可以增删目录中的内容,x 是可以进入目录。

除了rwx这三个常用权限位,Linux还有几个「特殊权限」 s(suid)、s (sgit)、t(Sticky Bit)。

比如 passwd 文件属主的第三个权限是s(suid),这表示其他用户在执行该文件时具有属主的权限。这样的好处是,普通用户没有修改shadow文件的权限,当普通用户用执行passwd命令修改密码时,具有了属主root的权限,就能修改shadow文件了。sgid也是同样的效果。

shell 复制代码
:~$ ls -l /usr/bin/passwd 
-rwsr-xr-x 1 root root  /usr/bin/passwd
:~$ ls -l /etc/shadow
-rw-r----- 1 root shadow  /etc/shadow

新建文件或目录的默认权限,由系统掩码umask决定。「掩码」的相关资料,可以参考我的另一篇文章 Linux修改文件默认访问权限

相关推荐
云云3218 分钟前
云手机:Instagram 账号管理新机遇
服务器·线性代数·安全·智能手机·矩阵
WTT001132 分钟前
CTFshow-SSRF&文件上传
大数据·运维·网络·安全·web安全·ctf
久笙&43 分钟前
高效设计AI Prompt:10大框架详细对比与应用
人工智能·prompt
yuanlulu44 分钟前
mindie推理大语言模型问题及解决方法汇总
人工智能·华为·自然语言处理·nlp·大语言模型·昇腾
学术会议1 小时前
【智慧光学与高效信号处理】2025年信号处理与光学工程国际会议 (SPOE 2024)
大数据·人工智能·物联网·安全·信号处理
爱研究的小牛1 小时前
Midjourney技术浅析(一)
人工智能·深度学习·aigc·midjourney
心灵彼岸-诗和远方1 小时前
DevOps工程技术价值流:Ansible自动化与Semaphore集成
linux·运维·网络·软件工程·devops
m0_748251521 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
爱写代码的小白.1 小时前
RustDesk内置ID服务器,Key教程
linux·运维·服务器
qq_273900231 小时前
PyTorch Lightning Callback介绍
人工智能·pytorch·python