2.18 特殊权限set_uid
时间:2022-04-27
本文章向大家介绍2.18 特殊权限set_uid,主要内容包括set_uid、set_uid介绍、set_uid总结、set_uid的写法、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
set_uid
例子 -rwsr-xr-x.中的s的权限
[root@hf-01 ~]# which passwd
/usr/bin/passwd
[root@hf-01 ~]# ls -l /usr/bin/passwd 会发现passwd文件含有特殊的s权限
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
set_uid介绍
- set_uid(s):该权限针对二进制可执行文件使文件在执行阶段具有文件所有者的权限。
- 可以使用chmod u+(-)s 【二进制文件名】 来设置权限。
- 相当于set_uid设置user的权限位。
[root@hf-01 ~]# ls /etc/shadow
/etc/shadow 改用户密码的文件
[root@hf-01 ~]# ls -l !$ 会发现更改密码的文件权限为000
ls -l /etc/shadow
----------. 1 root root 665 10月 26 08:04 /etc/shadow
set_uid总结
- set_uid命令,就是保证普通用户临时拥有该命令所有者的身份
- 给一个文件设置set_uid拥有临时所有者的权限
- 前提,是该文件必须是二进制文件,而且是一个可执行(x)的文件
-
- 例如:ls,passwd这些文件就是二进制文件
- 而像,1.txt去设置set_uid权限是没有意义的
- 小写的s包括了x权限,大写的S表示没有x权限
[root@hf-01 ~]# ls -l /usr/bin/ls 这里想给ls命令加一个
-rwxr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
然后复制SSH渠道,打开另一个终端2hf(1)下
[root@hf-01 ~]# su - hanfeng 切换到普通用户hanfeng下去
[hanfeng@hf-01 ~]$ whoami 来查看当前用户
hanfeng
[hanfeng@hf-01 ~]$ ls /root/ 这时访问/root/目录,会提示没权限
ls: 无法打开目录/root: 权限不够
这时回到之前的终端下1hf(0)下
[root@hf-01 ~]# chmod u+s /usr/bin/ls 给ls命令增加+s权限
[root@hf-01 ~]# ls -l /usr/bin/ls 这时查看ls命令,会发现x变化为了s权限(小写的s包括了x权限,大写的S表示没有x权限)
-rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
在切换到另一个终端2hf(1)下
[hanfeng@hf-01 ~]$ ls /root/ 这时会看到有访问权限了,就是因为set_uid权限赋给ls。(当在其他用户下使用ls命令时,在执行过程中会以root身份来运行)
11.txt 123 234 2.txt 33.txt anaconda-ks.cfg.1 ha.txt hf
[hanfeng@hf-01 ~]$ ls -ld /root/
dr-xr-x---. 5 root root 4096 10月 26 09:41 /root/
回到终端1hf(0)下
[root@hf-01 ~]# chmod u-s /usr/bin/ls 去除set_uid赋予给ls的权限
set_uid的写法
- ls命令的绝对路径为 /usr/bin/ls
[root@hf-01 ~]# chmod u+s /usr/bin/ls 命令ls被赋予了s权限
[root@hf-01 ~]# chmod u-s /usr/bin/ls 收回s权限
[root@hf-01 ~]# chmod u=rws /usr/bin/ls 这也是赋予ls权限的方法,但是它缺少可执行的权限(小写的s包括了x权限,大写的S表示没有x权限)
[root@hf-01 ~]# !ls 会发现这里显示的是大写S
ls -l /usr/bin/ls
-rwSr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[root@hf-01 ~]# chmod u+x /usr/bin/ls 在这里再给它加上+x可执行的权限即可
[root@hf-01 ~]# !ls 会发现这里显示的是小写s
ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[root@hf-01 ~]#
- 目录可增加set_uid权限,但是基本没啥作用,目录基本不用去执行啥
- set_uid权限本身的作用就是给一个普通用户的用户执行,临时拥有所有者的身份
- Linux下通过rdesktop连接Windows远程桌面
- 微信iOS收款到账语音提醒开发总结
- React Native按需加载 手Q狼人杀探索之路
- nginx日志切割及7天前的历史日志删除脚本
- 《ios爆内存问题解决方案-OOMDetector组件》
- Linux/SUSE安装svn客户端的问题记录
- 《广研Android卡顿监控系统》
- 替换WordPress默认搜索为百度站内搜索(知更鸟主题可照搬)
- 《Android插件化技术——原理篇》
- 利用Centos或RedHat的iso镜像搭建本地yum仓库
- QUIC协议初探-iOS实践
- Golang语言社区--【基础知识】常量
- 服务器日志备份超节省空间的思路
- 《企鹅电竞weex实践—— iOS SDK的小九九》
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android中js和原生交互的示例代码
- 浅谈android获取设备唯一标识完美解决方案
- Android开发实现长按返回键弹出关机框功能
- Android View 完美实现EditText 在软键盘上边的示例
- Android蓝牙通信之搜索蓝牙设备
- Android listview定位到上次显示的位置的实现方法
- Android开发实现生成excel的方法详解
- Android ToolBar 修改边距的实现方法
- Android 自定义view实现TopBar效果
- Android 客户端RSA加密的实现方法
- Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)
- Android 中Failed to read key from keystore解决办法
- Android圆角按钮的制作方法
- Android计时器控件Chronometer应用实例
- Android 中利用 ksoap2 调用 WebService的示例代码