3A

  • Authentication : 认证 验证用户身份
  • Authorization : 授权 不同用户设置不同权限
  • Accouting | Audition : 审计

Linux

验证用户身份

UID User ID

  • 管理员 root UID=0
  • 普通用户
    • 系统用户 UID 1-999 不需要登陆,给程序用的
    • 自定义用户 UID 1000+ 可以登录

GID Group ID

创建用户时会自动创建同名的用户组

  • 管理员组 root GID=0
  • 普通用户组
    • 系统用户组
    • 自定义用户组

用户和组的关系

  • 主要组 用户必须有且只有一个主要组
  • 附加组 用户可以加入多个附加组,可以有也可以没有

一个程序访问一个文件,需要看运行程序的用户身份来决定是否可以访问该文件。

用户的UID可以修改

修改/etc/passwd 中相关内容,可以更改用户UID

思考:在Liunx系统中UID可以重复么?例如,可以将user1的UID更改为0么?

根据规定,普通用户的uid必须大于499且不能和已存在的uid重复。

但是我们通过看useradd 选项可以发现

  -o, --non-unique              允许使用重复的 UID 创建用户

也就是说,系统中允许uid重复的用户,类似于硬链接的形式。

在某些特 定目的下,系统中可以存在多个拥有不同注册名、但UID相同的用户,事实上,这些使用不同注册名的用户实际上是同一个用户。

[21:03:34 root@C8-3-55 ~]#tail -2 /etc/passwd
pipewire:x:989:985:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
user1:x:8892:8892::/home/user1:/bin/bash
[21:03:45 root@C8-3-55 ~]#useradd -o user2 -u 8892 -g 8892
[21:04:27 root@C8-3-55 ~]#tail -2 /etc/passwd
user1:x:8892:8892::/home/user1:/bin/bash
user2:x:8892:8892::/home/user2:/bin/bash

通过实验,我们可以看到使用-o参数,我们创建了两个uid同样为8892的用户uesr1和user2,但家目录却不相同。


我们知道,不同用户是不可以进入其他用户的home目录中的,但具有相同UID的不同用户,却可以进入对方的目录。

[21:05:56 root@C8-3-55 ~]#su user1
[21:06:29 user2@C8-3-55 root]$pwd
/root
[21:06:34 user2@C8-3-55 root]$cd
[21:06:39 user2@C8-3-55 ~]$pwd
/home/user1
[21:06:41 user2@C8-3-55 ~]$cd ~user2
[21:06:52 user2@C8-3-55 user2]$pwd
/home/user2

你懂了么?

Linux安全模型中的3A的更多相关文章

  1. Linux系统中的Device Mapper学习

    在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...

  2. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  3. 在linux系统中安装VSCode(Visual Studio Code)

    在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网  ...

  4. Linux 系统中的MySQL数据库默认区分大小写

    今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...

  5. Linux环境中Openfire安装指南

    Linux环境中Openfire安装指南 安装环境: 安装软件:Openfire 4_1_0 http://download.igniterealtime.org/openfire/openfire_ ...

  6. Linux 内核中的 Device Mapper 机制

    本文结合具体代码对 Linux 内核中的 device mapper 映射机制进行了介绍.Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机 ...

  7. Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...

  8. 79 umount-卸除目前挂在Linux目录中的文件系统

    Linux umount命令用于卸除文件系统. umount可卸除目前挂在Linux目录中的文件系统. 语法 umount [-ahnrvV][-t <文件系统类型>][文件系统] 参数: ...

  9. 如何在Linux服务器中隐藏PHP版本

    通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP.PHP 是如今流行的服务端html嵌入式语言(之一?).在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞.因此, ...

随机推荐

  1. fzu2202 犯罪嫌疑人

    Problem Description 福尔摩斯是个大侦探,他总是在解决疑难案件.这一次的案件也不例外,案件是这样的:有编号为1到N的N位嫌疑犯,他们其中有一个犯了罪,然后每个嫌疑犯都被询问,&quo ...

  2. SpringBoot整合Swagger初探

    当下的Web项目大都采用前后端分离+分布式微服务的架构.前后端分离式的开发中,前端开发人员要与后端开发人员协商通信接口,约定接口规范.因此对于开发人员来说能够维持一份及时更新且完整全面的API文档会大 ...

  3. leetcode 12 整数转罗马数字 贪心

    额,连着两个贪心? 这是局部最优问题:能用大"罗马数表示"就不会用小的. 先构造出所有基础罗马数,然后从大到小比较 因为比较的只有1000,900,...有限并有些麻烦,构造tab ...

  4. Codeforces 11D A Simple Task 统计简单无向图中环的个数(非原创)

    太难了,学不会.看了两天都会背了,但是感觉题目稍微变下就不会了.dp还是摸不到路子. 附ac代码: 1 #include<iostream> 2 #include<cstdio> ...

  5. chrome禁用缓存:调试javascript注意事项

    chrome禁用缓存:调试javascript   chrome对js和图片的缓存,导致调试的程序不是最新的,有时F5刷新了都没用. 可以禁用缓存: 先按F12,再按F1, 勾选 Disable ca ...

  6. 洛谷p2216 多次单调队列,扫描矩阵中的最大值减去最小值最的固定大小子矩阵

    #include <iostream> #include <cstdio> #include <cstring> using namespace std; int ...

  7. Roman Numerals All In One

    Roman Numerals All In One 罗马数字 refs https://www.mathsisfun.com/roman-numerals.html https://www.maths ...

  8. How to use JavaScript to implement precise setTimeout and setInterval

    How to use JavaScript to implement precise setTimeout and setInterval 如何使用 JavaScript 实现精确的 setTimeo ...

  9. Web Vitals

    Web Vitals https://www.youtube.com/watch?v=2k1QbgLAFdI&feature=youtu.be $ npm i -S web-vitals ht ...

  10. 「NGK每日快讯」2021.1.11日NGK第69期官方快讯!