一、特殊权限SUID

  • 前面我们已经学习过 r(读)、w(写)、 x(执行)这三种普通权限,但是我们在査询系统文件权限时会发现出现了一些其他权限字母,比如:
ll /usr/bin/passwd-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd▲
#普通用户-->执行-->passwd命令时。#1.由于passwd命令拥有suid特殊权限(在命令属主权限位有一个s),#2.那么在整个命令执行的过程中,会以命令的属主身份去运行该命令。  <-- root
  • 普通用户 --> passwd —> 该命令属主身份root在运行 —> 依托root身份 --> 变更 /etc/shadow 密码信息
  • 例:
    默认情况下,所有普通用户,都无法查看/etc/shadow,有没有办法能够让所有的普通用户都能查看/etc/shadow。
su - xu                                                  #切换到普通用户
Last login: Sat Mar 14 00:54:53 CST 2020 on pts/0
$ cat /etc/shadow                                           #普通用户cat不了这个文件
cat: /etc/shadow: Permission denied
ll /usr/bin/cat                                             #查看cat命令权限
-rwxr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
chmod 4755 /usr/bin/cat                                     #赋予特殊权限SUID给cat命令
#或者chmod u+s /usr/bin/cat
ll /usr/bin/cat                                             #查看cat命令权限
-rwsr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat▲
$ cat /etc/shadow                                           #再次用普通用户cat这个文件
root:$6$z/ZkRi2of/59HbsT$pfSdItKyuq5/R6u0t4CzhapdU32fGc9d7Vxy6AKfJnU758IuBc/q4sIgY6w2aQHj6cE60GQbHLjx7.JiRl2/x0::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::

二、特殊权限SGID

  • 表现形式: 在文件的 属组权限上有显示一个s(执行权限) S(没有执行权限)

  • 普通用户–>执行–>passwd命令时。
    1.由于passwd命令拥有SGID特殊权限 (在命令属组权限位有一个s),
    2.那么在整个命令执行的过程中,会以命令的 “属组” 身份去运行该命令。 <-- root组

  • 文件:普通用户 --> passwd —> 该命令属组身份 root 在运行 —> 依托root组 身份 --> 变更 /etc/shadow 密码信息
    目录:将目录设置为sgid后,如果在该目录下创建文件,都将与该目录的所属组保持一致

    suid 借助 ” 属主 “ 身份运行该命令程序
    sgid 借助 “ 属组 ” 身份运行该命令程序

  • 应用为:

ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
chmod 2755 /usr/bin/cat
#或者chmod u+s /usr/bin/cat
ll /usr/bin/cat
-rwxr-sr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat▲
  • sgid作用:
    使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

三、特殊权限SBIT

  • 针对的是目录:
    目录一旦被赋予了粘滞位,除了 root 可以删除所有文件,普通用户对该目录就算拥有 w 权限,也只能删除自己建立的文件,而不能删除其他用户建立的文件。
chmod 1755 /usr/bin/cat
#或者chmod o+t /usr/bin/cat
ll /usr/bin/cat
-rwxr-xr-t. 1 root root 54160 Oct 31  2018 /usr/bin/cat▲

四、特殊属性

  • 权限有关
    比如说:
    1. 我希望创建一个文件,不允许被删除。包括root都不行。
    2. 我希望这个文件只能往里面追加数据。
    chattr 命令就能解决,它只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。
  • chatrr+[+ - =]选项+文件或目录名
    选项:+ :增加权限
    -:减少权限
    = :等于某个权限
    a :让文件或者目录仅可追加内容
    i :不得任意更动文件或者目录
  • 例:配置一个文件,不能改,只能追加,不能删除
touch file                   #创建文件
lsattr file                 #查询文件系统属性---------------- file
chattr +a file             #给文件赋予特殊属性
lsattr file                 #查询文件系统属性-----a---------- file
vim file                    #手动编辑(失败)
echo '123' >>file           #追加文本(成功)
cat file123
rm -f file                  #删除文件(失败)rm: cannot remove ‘file’: Operation not permitted、
#如果要删除文件,需要使用root身份,先取消属性,然后删除

五、默认权限UMASK

  • 1.为什么系统中默认创建的文件权限是 644 目录是 755
    2.为什么默认创建一个普通用户,他的家目录权限是 700

    原因:
    默认系统规定的权限, 目录 777 文件 666 那么为什么创建出来的文件和目录都不是777 也不是 666呢?
    由于UMASK控制了, 比如UMASK 设置为 0022
    那么最终创建出来的文件和目录分别就是
    目录: 755
    文件: 644

  • 默认创建普通用户家目录的权限。

vim /etc/login.defsUMASK           077       #创建用户时,设定的UMASK为077
#777-077=700
ll -d /home/u1
drwx------. 3 u1 grp1 78 Mar 13 01:30 /home/u1
#如果我希望创建出来的目录权限是755,将/etc/login.defs 中UMASK设置为022
  • 默认情况下 root用户创建的文件权限,和普通用户创建的文件权限是不一样的:
  1. root创建的文件,默认是644
  2. 普通用户创建的文件,默认是664

当一个用户登陆系统时,会去加载一些环境变量,来初始化我们的工作目录。(/etc/profile)

vim /etc/profile
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; thenumask 002
elseumask 022
fi
# root:   0     既然你的UID没有大于199,那么就将你的 UMASK 初始化为 022
#普通用户:  1000    UID大于199,并且,组名称和用户名称一致,所以条件成立,那么UMASK初始化为  002
#文件和目录的默认权限都是授UMASK控制,而UMASK是用户在登陆系统时,通过 /etc/profile 中的一个公式来进行的分别设定。
UMASK扩展
  • umask所有位全为偶数时
    umask 044
    mkdir d044 目录权限为 777 - 044 = 733
    touch f044 文件权限为 666 - 044 = 622

  • umask部分位为奇数时
    umask 023
    mkdir d023 目录权限为777 - 023 = 754
    touch f023 文件权限为666 - 023 = 643 + 001 = 644

  • umask部分位为奇数时
    umask 032
    mkdir d032 目录权限为777 - 032 = 745
    touch f032 文件权限为666 - 032 = 634 + 010 = 644

  • umask值的所有位为奇数时
    umask 035
    mkdir d035 目录权限为777 - 035 = 742
    touch f035 文件权限为666 - 035 = 631 + 011 = 642

学习Linux运维的个人笔记:特殊权限(十四)相关推荐

  1. 由su和su -的区别谈学习linux运维方法

    由su和su -的区别谈学习linux运维方法一例 老男孩Linux培训新班刚开始,老男孩发现群里就在讨论这个su和su -的区别,有的同学们说,直接su就可以,有的说必须要su -.有的同学直接发问 ...

  2. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》

    本书历史上已出版最实战的Shell高级编程实战书籍,没有之一,和市面书籍不同,本书是作者经过18年的运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者. <跟 ...

  3. linux运维需要掌握的,学习Linux运维需要掌握哪些技能?Linux运维

    如何学习Linux技术?每年都有许多人转行进入it互联网行业,为了高薪也好,为了理想也罢,学习it技术的人们越来越多.Linux运维学习是目前大众热衷于选择学习的方向之一.那么学习Linux技术能获的 ...

  4. 用虚拟机学linux,虚拟机上学习Linux运维?学linux有什么用

    一些不熟悉Linux运维的朋友认为,只有把他们的计算机安装成Linux系统或真正的服务器设备,他们才能开始学习Linux. 但事实上,Linux操作和维护技术可以通过使用虚拟机来学习. 使用虚拟机软件 ...

  5. 0基础学习Linux运维的必经之路

    最近看到了一篇新闻,linux之父建议找一份基于linux和开源环境的工作,确实,这已经是未来的大趋势了. 今天就来聊一聊我的想法,本人8年linux运维一线经验,呆过很多互联网公司,从一线运维做到运 ...

  6. 怎样学习Linux运维云计算,linux运维云计算课程学习,Linux云计算面试时遇到的问题...

    原标题:linux运维云计算课程学习,Linux云计算面试时遇到的问题 Linux命令行,以及用户使用Linux命令进行Linux shell交互,是Linux最吸引人的地方,也是面试中最普遍的话题之 ...

  7. 跟老男孩儿学习LINUX运维

    学习LINUX计划书 我叫李想,2016年2月21日在老男孩儿教育机构跟老男孩上了第一堂课(8:30-19:30).感触很深,老师教育有套路有方法.有激情有活力.有奖励有惩罚,做事细致,对学员认真负责 ...

  8. 学习LINUX运维决心书

    老男孩老师及各位同学大家好: 我叫白翮(hé),今年32岁,从事的是无线通讯行业,入职的职位是软件工程师(完全自学C++,没有完整的写过一个程序,只会改改小BUG加点小功能),后来在领导的引导下变成了 ...

  9. linux sed 正则转义,Linux运维云升笔记 (一)正则表达式以及文档编辑器sed

    正则表达式概述 使用单个字符来描述.匹配一系列符合某个语句规则的字符串,由普通字符与特殊字符组成,正则表达式广泛使用在脚本编程.文本编辑器中. 正则表达式简写为regex.regexp.RE. 再大多 ...

最新文章

  1. awk 分隔符_awk 中的字段、记录和变量 | Linux 中国
  2. 微信自定义内置返回事件
  3. 天弘基金交易数据清算从8小时缩至1.5小时 解决余额宝算力难题
  4. Python实例讲解 -- 图片处理
  5. coxphfit+matlab,Cox Proportional Hazards Model
  6. Python对MySQL数据库的创建,增删改查操作
  7. iOS10推送适配完整说明
  8. LintCode刷题——打劫房屋I、II、III
  9. 【历史上的今天】8 月 14 日:新浪微博开始内测;阿塔纳索夫完成论文;登上太空的计算机病毒
  10. font-family:微软雅黑;与font-family:Microsoft YaHei;的区别?
  11. 【电子技术实验设计】简易水位控制器设计报告
  12. android studio计算机代码,Android Studio实现简易计算器
  13. 动手了!限19天,大米云主机满10送2手慢无!
  14. 游戏设计的236个技巧++游戏机制、关卡设计和镜头窍门pdf
  15. InfluxDB在Win10安装与简单入门
  16. 超级简单的HTML圆形头像css
  17. 到底什么是超融合呢?
  18. 华字后面配什么字比较好_和华字搭配的男孩名字 华后面取什么名字男孩 带华字好听好寓意男孩名...
  19. 魔兽私服Trinitycore架构设计分析之一
  20. 转让英孚10个月课程

热门文章

  1. 服务器两个编码_两个朋友如何改变职业,学习编码并建立起初创公司
  2. Verilog 每日一题 (VL27 可置位计数器)
  3. 香港CN2线路虚拟主机
  4. cmd查看电脑最近连接过的wifi密码
  5. 奇怪的文化:服务业就是骗子行业
  6. python后端开发培训
  7. ​力扣解法汇总658-找到 K 个最接近的元素
  8. 浅谈Mysql参数优化
  9. OpenCv 之(图片人脸识别)和 (摄像头读入)
  10. kali安装步骤失败