Linux特殊权限-day11

1,特殊权限概述

前面我们已经学习过r(读),w(写),x(执行)这三种普通权限,但是我们在查询系统文件时会发现出现了一些其他权限字母,比如:
  [root@bgx ~]#  ll  /usr/bin/passwd
  -rwsr-xr-x.1  root  root  27832  Jun  10  2014  /usr/bin/passwd
在属主本来应该是执行x(执行)权限的位置出现了一个小写s,这是什么权限?我们把这种权限称作setUID权限,也叫做SUID的特殊权限.这种权限有什么作用?或者说能干什么........↓↓↓

2.特殊权限SUID

1,问题抛出

在linux系统中,每个普通用户都可以更改自己的密码,这是合理的设置.问题是,普通用户的信息保存在/etc/passwd 文件中,用户的密码在/etc/shadow 文件中,也就是说,普通用户在更改自己的密码时修改了/etc/shadow 文件中的加密密码,但是文件权限显示,普通用户对这两个文件其实都是没有写权限的,那为什么欧通用户可以修改自己的权限呢?
  [root@bgx ~]#  ll  /etc/passwd
  -rw-r--r--  1 root  root  6209  Apr  13  03:26  /etc/passwd
  [root@bgx  ~]#  ll  /etc/shadow
  -----------  1  root  root  11409  Apr  13  03:26  /etc/shadow

2,解决方案

其实,普通用户可以修改自己的密码在于passwd 命令.该命令用户特殊权限SetUID,也就是在属主的权限位的执行权限是s.可以这样理解它,当一个工具有执行权限的文件设置SetUID权限后,用户在执行这个文件时将以文件所有者的身份来执行.
ps:当普通用户使用passwd命令更改自己的密码时,实际上是在用passwd命令所有者root的身份执行passwd命令,root当然可以将密码写入/etc/shadow 文件,所以普通用户也可以修改/etc/shadow 文件,命令执行完成后,该身份也随之消失.

3,示例演示

举个例子,有一个用户lamp,她可以修改自己的权限,因为passwd命令拥有SetUID权限;但是她不能查看/etc/shadow 文件的内容,因为查看文件的命令(如cat)没有SetUID权限.命令如下:
  #自己可以修改自己的密码,从而改变/etc/shadow中的数据
  [lamp@bgx  ~]$  passwd

  #但无法使用cat命令查看/etc/shadow
  [lamp@bgx  ~]$  cat  /etc/shadow
  cat:  /etc/shadow:  Permission denied
示意图:
9.png

4,例子解释

passwd 是系统命令,可以执行,所以可以赋予SetUID权限.
lamp 用户对passwd 命令拥有x(执行)权限.
lamp用户在执行passwd 命令的过程中,会暂时切换为root身份,所以可以修改/etc/shadow 文件.
命令结束,lamp用户切换回自己的身份.
ps:cat 命令没有 SetUID权限,所有使用 lamp 用户身份去访问 /etc/shadow 文件,当然没有相应权限了.
10.png

2,suid授权方法4000 权限字符s(S),用户位置的x位上设置

  #  chmod  4755  passwd
  #  chmod  u+s  passwd

3,suid的作用

1,让普通用户对可执行的二进制文件,临时拥有二进制文件的所属主权限.
2,如果设置的二进制文件没有执行权限,那么suid的权限显示就是大s.
3,特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效.
ps:suid极度危险,一般不修改,只使用系统默认的suid权限.

3,sgid (set gid) 特殊权限 (RHCE考试)

将目录设置为sgid后,如果在往该目录下创建文件,都将与该目录的所属组保持一致,演示如下:
  [root@oldboyedu ~]# groupadd devops 
  [root@oldboyedu ~]# useradd zhangsan -G devops 
  [root@oldboyedu ~]# useradd lisi -G devops

  [root@oldboyedu ~]# mkdir /opt/share 
  [root@oldboyedu ~]# chmod 2777 share/ 
  [root@oldboyedu ~]# chown .devops share/

  #测试不同的用户在该目录下创建文件,检查属主和属组 #使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

4,sbit特殊权限

如果一个目录设定了粘滞位, 那么谁都可以在该目录下创建文件,.
删除文件只能是 谁创建的谁删除. 除此以外 root 和/tmp/的所属主都能 删除该目录下的额内容
  # 设定粘滞位 
  1000 chmod o+t /tmp 
  chmod 1777 /tmp
粘滞位的使用场景
11.png
用户上传资源场景
12.png

5,特殊属性 chattr lsattr

-a 只能追加,无其他操作
-i 锁定文件,不能删除,不能追加,不能移动

1,希望任何人都不能创建用户,应该给/etc/passwd添加什么特殊属 性?

  [root@oldboyedu ~]# chattr +i /etc/passwd 
  [root@oldboyedu ~]# lsattr /etc/passwd 
  ----i----------- /etc/passwd 
  # 不得任意更动文件或目录

  #---------------------------------------------- 
  [root@oldboyedu ~]# chattr -i /etc/passwd 
  [root@oldboyedu ~]# lsattr /etc/passwd 
  ---------------- /etc/passwd 
  [root@oldboyedu ~]# useradd test123

2,日志文件,希望能往里面追加内容,但不允许删除,应该添加什么特殊属性?

  [root@oldboyedu ~]# chattr +a /var/log/secure 
  [root@oldboyedu ~]# lsattr /var/log/secure 
  -----a---------- /var/log/secure

6,umask 默认权限

umask是用来控制默认创建文件或目录的权限
umask设定为022,表示要减去的权限

目录 777 -022 =755
文件 666 -022 =644

umask 设定为奇数 偶数 对文件和目录有什么影响?

文件: 如果umask出现了奇数, 要在奇数位+1
目录: 对目录毫无影响

设定umask

umask number 临时 (当前bash窗口有效,会随着bash的关闭一起结束)
vim /etc/profile /etc/login.defs # 如果修改则都为永久.

PS: umask 知道就行, 不要调整,默认就是安全的权限.

目录: 755
文件: 644

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.特殊权限(suid\sgid\sbit)2.权限属性(chatter)3.进程掩码(umask) 一、特殊权限...
    静如止水yw阅读 225评论 0 0
  • 一、特殊权限概述 前面我们已经学习过 r(读)、w(写)、 x(执行)这三种普通权限,但是我们在査询系统文件权限时...
    Linux运维meng阅读 332评论 0 1
  • 内容概要 为什么要进行权限管理? 在生产服务器上,所有用户都用管理员权限登录吗?显然这是不可以也是不可能的。 因此...
    若兮缘阅读 1,057评论 1 9
  • 1.特殊权限概述 前面我们学了 rwx这三种普通权限,但是我们在査询系统文件权限时会发现出现了一些其他权限字母,比...
    风铃科技阅读 568评论 0 2
  • 我祝福你,永远地祝福你 你是发生在我生命中最奇妙的一件事情 不敢过多叨扰 只是 只是 想让你知道 我会在这里 为你...
    小贩说阅读 161评论 1 0

友情链接更多精彩内容