Linux第二周学习笔记(12)


2.18 特殊权限set_uid

set_uid:这个权限是针对二进制可执行文件,使文件在执行阶段具有文件所有者的的权限。

--------------------------------------------------------------------------------------------

例如passwd命令:

[root@daizhihong01 ~]# which passwd

/usr/bin/passwd

[root@daizhihong01 ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

首先我们分析不同点:/usr/bin/passwd这个文件是一个红色的文件,-rwsr-xr-x.在它的权限位上多了一个“s”。

这个“s”就是set_uid的权限:windows系统里一个普通的用户也是可以给自己的账号更改密码,在Linux系统里passwd也是可以支持普通用户更改自己的密码,但是在Linux系统里面普通用户是不能更改密码文件的,我们来看一下密码文件的一个权限:

[root@daizhihong01 ~]# ls -l /etc/shadow

---------- 1 root root 677 1  30 23:11 /etc/shadow

/etc/shadow文件权限都是零,连超级用户root都没有权限更改,普通用户是更加改不了密码文件的。在root用户下是可以授权一个可写的权限给这个文件那就可以直接更改了,但是普通用户就不可能更改密码文件的。要想让普通用户更改自己的密码但是这个密码文件又不能让它写,这个就是比较矛盾的地方。那我们怎么来实现这个问题呢?为了能够实现这个问题我们就要使用特殊权限set_uid来完解决普通用户更改密码的问题,set_uid特殊权限可以让普通用户在执行/usr/bin/passwd 命令的时候赋予普通用户临时拥有所有者的权限,进行密码的更改,更改完了以后权限就会被收回。这个就是set_uid特殊权限的作用。

set_uid特殊权限:保证普通用户临时拥有该命令所有者的身份,使用set_uid特殊权限的文件必须是一个二进制的文件,并且是一个可执行文件。在Linux系统当中只有/usr/bin/passwd 命令用到这个权限

----------------------------------------------------------------------------------------------

文件授权set_uid特殊权限:

给ls –l /usr/bin/ls, 授予set_uid特殊权限

先查看权限:

[root@daizhihong01 ~]# ls -l /usr/bin/ls

-rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

然后切换一个普通用户:

[root@daizhihong01 ~]# su - yngndzh1

[yngndzh1@daizhihong01 ~]$ whoami

yngndzh1(切换到yngndzh1用户)

普通用户查看/root/时权限不够:

[yngndzh1@daizhihong01 ~]$  ls /root/

ls: 无法打开目录/root/: 权限不够

[yngndzh1@daizhihong01 ~]$ ls -ld /root/

dr-xr-x---. 3 root root 203 1月  30 20:53 /root/(普通用户是没有权限的)

ls命令设置一个set_uid特殊权限使普通用户临时拥有root用户的权限:

切换到root用户下进行修改:

[root@daizhihong01 ~]# chmod u+s /usr/bin/ls

[root@daizhihong01 ~]# ls -l /usr/bin/ls

-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

这时-rwsr-xr-x权限位加上了“s”

切换到yngndzh1普通用户下运行ls命令:

[yngndzh1@daizhihong01 ~]$ ls -l /root/

总用量 12

-rwx------  1 root root    0 1月  30 20:53 123.txt

-rw-------. 1 root root 1418 1月  22 08:19 anaconda-ks.cfg

-rw-r--r--  1 root root 4358 1月  29 23:24 anaconda-ks.cfg.1

[yngndzh1@daizhihong01 ~]$ ls -ld /root/

dr-xr-x---. 3 root root 203 1月  30 20:53 /root/(权限依旧是普通用户不能执行)

授权set_uid特殊权限以后就能查看/root/目录下的内容了

去掉set_uid特殊权限:

[root@daizhihong01 ~]# chmod u-s /usr/bin/ls

[root@daizhihong01 ~]# ls -l /usr/bin/ls

-rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

[root@daizhihong01 ~]#

--------------------------------------------------------------------------------------------

[root@daizhihong01 ~]# chmod u=rws /usr/bin/ls

[root@daizhihong01 ~]# ls -l /usr/bin/ls

-rwSr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

[root@daizhihong01 ~]#

这时变成了大“S”-rwSr-xr-x,这时因为没有X权限,少了一个x所以就变成了一个大写的“S”,设置成小“s”的话加入x权限即可,如下:

[root@daizhihong01 ~]# chmod u+x /usr/bin/ls

[root@daizhihong01 ~]# ls -l /usr/bin/ls

-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

“S”和小“s”区别不大,因为我们授予ls这个命令特殊权限的时候ls这个命令本身普通户就拥有X权限,所以执行时不受限制

[root@daizhihong01 ~]# ls -l /usr/bin/ls

-rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

---------------------------------------------------------------------------------------------

目录授权set_uid特殊权限:

目录是可以加入set_uid特殊权限,但是用处不大

转载于:https://blog.51cto.com/13577820/2068346

Linux第二周学习笔记(12)相关推荐

  1. Linux第二周学习笔记(7)

    Linux第二周学习笔记(7) 2.13 文档查看cat_more_less_head_tail (1). cat命令 cat命令:用于查看一个文件的内容并将其显示在屏幕上 cat-A命令:显示所有的 ...

  2. Linux第二周学习笔记(11)

    Linux第二周学习笔记(11) 2.17 隐藏权限lsattr_chattr chattr命令:是设置吟唱隐藏权限的命令,更改Linux文件系统上的文件属性. 参数说明: A:表示文件或目录的ati ...

  3. Linux第二周学习笔记(13)

    Linux第二周学习笔记(13) 2.19 特殊权限set_gid 特殊权限set_gid:这个权限可以作用在二进制可执行文件上,还可以作用在目录上.特殊权限set_gid权限位是作用在组权限位上,目 ...

  4. Linux第二周学习笔记(5)

    Linux第二周学习笔记(5) 2.11.CP命令 cp(copy简写)命令:用来将一个或多个源文件或者目录复制到指定的目的文件或目录. cp –r:复制目录 -i:安全选项 cp命令:拷贝/etc/ ...

  5. Linux第二周学习笔记(1)

    Linux第二周学习笔记(1) 2.6,相对和绝对路径 (1).路径:就是某一个文件存放的地方,只要键入这个文件的路径系统就只能直接找到这文件所在位置,所以找一个文件需要输入这个文件的路径. (2). ...

  6. JAVA 第二周学习笔记

    JAVA第二周学习笔记 一.变量 1.变量的本质 2.变量的三大要素 a.变量名: b.变量值: c.变量类型: 3.变量的定义和使用 4.课后小练习: 5.变量的定义和使用 二.运算符 1.赋值运算 ...

  7. 机电传动控制第二周学习笔记

    机电传动控制第二周学习笔记 经过第二周的学习,我了解了电机的发展历史.从奥斯特发现电生磁的现象,到法拉第电磁回转实验,再到后来的电机一步步的发展至今.它充满了巧合,但是它又必然一步步向更完美走去.电机 ...

  8. 大学生慕课第二周学习笔记

    Open Judge  第二周学习笔记 2.1 输入输出进阶 %f:读入输出float/输出double. %lf:读入double. %lld:读入输出long long. %s:读入输出字符串,不 ...

  9. 吴恩达深度学习 | (15) 结构化机器学习项目专项课程第二周学习笔记

    课程视频 第二周PPT汇总 吴恩达深度学习专项课程共分为五个部分,本篇博客将介绍第三部分结构化机器学习项目专项的第二周课程:机器学习(ML)策略(2) . 目录 1. 进行误差分析 2. 清除标注错误 ...

最新文章

  1. 网页出现不河蟹弹窗?那是被劫持了!
  2. 智慧交通day03-车道线检测实现09:车道线检测代码汇总(Python3.8)
  3. 千万别急着入手 5G 手机!
  4. J2EE运动会管理系统(含源码)
  5. 如何在电脑上下载抖音视频
  6. 后盾网-CI框架实例教程-马振宇 - 学习笔记(9)
  7. Docker容器网络模式与数据管理
  8. 改变销售预测准确率的4个最佳实践!
  9. php 邮件服务器 群发,发送使用PHP群发电子邮件发送使用PHP群发电子邮件(Sending mass email usin...
  10. Obsolete特性
  11. 体系结构学习笔记一:硬件动态调度算法介绍以及基于Verilog的Tomasulo实现
  12. 初来乍到,请多多指教
  13. 解决PHP报错No input file specified
  14. Win中安装虚拟机+CentOS
  15. 开源音乐_与这位开源音乐老师一起学习乐器
  16. 谈谈对高内聚低耦合的认识
  17. 一个极端的前端国际化方法
  18. DSP学习(4)—— 看代码记录
  19. 超好用的网页版组态编辑器BY组态
  20. android cursor

热门文章

  1. MySQL导出表结构
  2. 大学四年怎样过,做到这六点,甩别人一条街
  3. python转移矩阵_使用Python / Numpy中的单词构建转换矩阵
  4. 爬虫的步骤解析内容xpath介绍_Xpath的基本方法和使用详解 Python爬虫中最好用解析库...
  5. 计算机组成原理试卷分析,《计算机组成原理与汇编语言》试卷分析报告.doc.docx...
  6. delphi formshow 刷新_OPPO K7x部分配置和外观公布90Hz刷新率11·4发布
  7. halcon像素统计_Halcon一日一练:图像分辨率与像素
  8. 量化客户需求强度-建立VOC
  9. kNN(k-nearest-neighbor)算法的Python实现
  10. 再读华为代码规范文档