linux系统上的特殊权限 :
特殊权限有:SUID,SGID,STICKY

安全上下文:
1、进程以其发起者的身份运行:进程对文件的访问权限,取决于发此进程的用户的权限;进程是发起些进程用户的代理,因此以此用户的身份和权限完成所有操作
2、权限匹配模型:
(1)判断进程的属主,是否为被访问的文件属主,如果是,则应用属主的权限;否则进入第2步
(2)判断进程的属主,是否为被访问的文件属组,如果是,则应用属组的权限;否则进入第3步
(3)应用other的权限

SUID:
默认情况下:用户发起的进程,进程的属主是其发起者;因此,其以发起者的身份在运行;命令本身的文件的属主,不一定跟进程的属主是一个。比如:ls文件的属主是root,当以hadoop登录shell运行ls进程时,进程是以hadoop为属主的,而不是root

SUID的功用:用户运行某程序时,如果此程序拥有SUID权限,那些程序运行为进程时,其进程的属主不是发起者,而是程序文件自己的属主

管理文件的SUID权限:
chmod u+|-s FILE ……

展示位置:属主的执行权限位
如果属主原本有执行权限,显示为小写s;否则,显示为大写S

SGID:
SGID的功用:当目录属组有写权限,且此目录有SGID权限时,那么所有属于此目录的属组,且以属组身份在此目录中新建文件或目录时,新文件或目录的属组不是该用户的基本组,而是此目录的属组

管理文件的SGID权限:
chmod g+|-s FILE ……

展示位置:属组的执行权限位
如果属组原本有执行权限,显示为小写s;否则,显示为大写S

STICKY:
STICKY的功用:对于属组或全局可写的目录,组内的所有任务或系统上的所有用户对此目录中都能创建或删除所有的已有文件;如果为此类目录设置STICKY权限,则每个用户都能创建新文件,且只能删除自己的文件;不能删除属主非自己的文件

管理文件的STICKY权限:
chmod o+|-t FILE ……

展示位置:其它用户的执行权限位
如果属主原本有执行权限,显示为小写t;否则,显示为大写T

系统上的/tmp 和/var/tmp 目录默认均有STICKY权限

管理特殊权限的另一方式:
suid sgid sticky 八进制权限
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

基于八进制方式赋权时,可于默认的三位八进制数字左侧再加一位八进制数字
例如:chmod 1777

facl:file access control lists
文件的额外赋权机制:
在原来的u,g,o之外,另一层让普通用户能控制赋权给另外的用户或组的赋权机制

查看某文件的facl:
getfacl FILE ...
user:USERNAME:MODE
group:GROUP:MODE
赋权给用户:
setfacl -m u:USERNAME:MODE FILE...
赋权给组:
setfacl -m g:GROUPNAME:MODE FILE...
撤销赋权:
setfacl -x u:USERNAME FILE...
setfacl -x g:GROUPNAME FILE...

有了facl后的安全上下文:
权限匹配模型:
(1)判断进程的属主,是否为被访问的文件属主,如果是,则应用属主的权限;否则进入第2步
(2)判断进程的属主,是否有文件的额外权限的属主权限,如果是,则应用额外权限的属主的权限;否则进入第3步
(3)判断进程的属主,是否为被访问的文件属组,如果是,则应用属组的权限;否则进入第4步
(4)判断进程的属主,是否有文件的额外权限的属组权限,如果是,则应用额外权限的属组的权限;否则进入第5步
(5)应用other的权限

vim文本编辑及文件查找应用4的更多相关文章

  1. vim文本编辑及文件查找应用2

    vim编辑器: vim末行模式: 内建的命令行接口 (1)地址定界 :start_pos[,end_pos] #:特定的第#行,例如5即第5行 .:当前行 .,+#:当前行,加#行的行范围 $:最后一 ...

  2. vim文本编辑及文件查找应用3

    文件查找 locate,find两个命令 在文件系统上查找符合条件的文件: 实现工具:locate,find locate命令: 依赖于事先构建好的索引库,索引库可以由下边两种方式构建 系统自动实现( ...

  3. vim文本编辑及文件查找应用1

    vim编辑器:    文本编辑器:        文本:纯文本,ASCII text;Unicode(全球通用); 文本编辑种类:        行编辑器:sed        全屏编辑器:nano, ...

  4. Linux使用vim进行多文件查找和替换的方法

    vim是Linux系统下常用的文本编辑,通过使用多种shell命令能够实现多文件的查找和替换,那么具体会使用到那些命令呢?下面小编就给大家介绍下Linux系统vim多文件查找和替换的方法. 在linu ...

  5. VIM批量文件查找和替换

    使用vim时间不长,linux命令行下常用的文本编辑工具,所以需要掌握一些基本的用法.很多不会的不是百度就谷歌,总有你想要的答案. 1. 批量文件查找内容 vimgrep 比如在当前目录下查找带有“a ...

  6. Linux的VMWare中Centos7文件查找(find-grep)和vim文本编辑器基操

    一.find文件查找 grep 匹配字段 文件名 ——筛选文件   find查找 语法参数示例 格式: find 查找范围 查找类型 参数   find / -name *.conf   按文件名查找 ...

  7. vim文本编辑工具(全)

    VIM文本编辑工具 编辑模式 i    在当前字符前插入I   在光标所在的行首插入a 在当前字符后插入A 在光标所在行尾插入o 在当前行的下一行插入新的一行O 在当前行的上一行插入新的一行 s   ...

  8. (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找

    环境变量与文件查找 本节介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变 ...

  9. 12 文件查找--find命令

    之前,我们学习过grep来过滤文件内容,而这种查找找的是某一个文件内的内容:以及 less 或者 man 或者上一节提到的 vim 编辑器中的 / 与 ? 都是用来查找单个文件内的内容.而这一节,我们 ...

随机推荐

  1. qwt

    一. 1.下载地址https://sourceforge.net/projects/qwt/ 2.注意:官方提供qt安装包creator都是用MSVC编译(包括mingW版)的,所以Creator的插 ...

  2. 实例节点的NTP服务器地址配置正确,而且能够ping通, 但是在chronyc sources指令中显示NTP服务器状态为“?”

    问题:如果实例节点的NTP服务器地址配置正确,而且能够ping通,   但是在chronyc sources指令中显示NTP服务器状态为“?”, 该如何检查并操作. 1)在chrony配置文件中,检查 ...

  3. CORS扫描工具

    参数链接: https://github.com/chenjj/CORScanner 未发现Cors风险 已发现Cors风险 py2遇到的坑: 提示https ssl告警 /usr/local/lib ...

  4. 【FFMPEG】不要试图用msvc来编译ffmpeg

    原文:http://blog.csdn.net/hn756si/article/details/41147497 出于学习目的,想建一个vs2010工程来编译ffmpeg(http://www.ffm ...

  5. ES 数据类型

    官网数据类型网址 有价值的参考博客 本文 Elasticsearch 版本为 7.2 1. 核心数据类型 (1)字符串类型: text, keyword (2)数字类型:long, integer, ...

  6. codevs 1200:同余方程

    题目描述 Description 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入描述 Input Description 输入只有一行,包含两个正整数 a, b,用 一个 空 ...

  7. StormUI各参数详解

    参考:http://www.malinga.me/reading-and-understanding-the-storm-ui-storm-ui-explained/  

  8. DOS命令学习

    DOS命令学习 一.DOS使用常识 DOS的概况 DOS(Disk Operating System)是一个使用得十分广泛的磁盘操作系统,就连眼下流行的Windows9x/ME系统都是以它为基础. 常 ...

  9. python time模块认识

    time 模块 -- 时间获取和转换 time 模块提供各种时间相关的功能 在python中, 与时间处理有关的模块包括: time, datatime 以及 calendar 必要说明!: 虽然这个 ...

  10. hdu 6077多校签到

    #include <iostream> #include <cstdio> using namespace std; ][]; int f(int pos) { ; ;i< ...