2.18 特殊权限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权限本身的作用就是给一个普通用户的用户执行,临时拥有所有者的身份

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏别先生

EasyUI之Hello world(EasyUI的入门学习)

1:创建一个动态web工程:     去官网http://www.jeasyui.net/download/下载官网文档     我去官网下载的最新版本,个人根...

21410
来自专栏IT笔记

Nginx学习之安装篇

基于Linux的安装,本篇教程提供两种安装实现,尽管之前安装过很多次,但是这里还是做一个整理。 YUM安装 优点:不用担心依赖关系、一键安装。 缺点:由于YUM...

3075
来自专栏性能与架构

Redis3 集群中删除节点

image.png 删除节点有两种情况: (1)删除master节点,需要先把目标节点中的slot移动到其他节点中,然后执行删除节点操作 (2)删除slave节...

2716
来自专栏算法修养

Git 使用篇二:搭建远程服务器

一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发。 这里以Centos云服务器为...

3676
来自专栏小古哥的博客园

Git 常用命令合集

$ git init          建立git仓库(一般都是在github上新建好,直接克隆到本地) $ git clone **.git       克隆...

3528
来自专栏互联网杂技

laravel—用Migration的操作数据库

当然可以手动创建表; 据说Migration相当于是mysql的git工具,而且非常好用; 创建: php artisan make:migration cre...

3978
来自专栏Java技术栈

Maven精选系列--eclipse各种操作

在eclipse中配置maven的安装目录,使用最新的maven插件,从安装列表中可以看到eclipse自带绑定的是3.3.9,不是最新的,我们勾选自己的最新的...

35110
来自专栏魏艾斯博客www.vpsss.net

如何在 wordpress 文章页和单页面隐藏作者/发布者

2473
来自专栏从零学习云计算

kubernetes工作记录(2)——基于release工程的kubernetes1.7.3 rpm包的编译生成

使用release工程编译的方式,生成kubernetes1.7.3的rpm包。 虚拟机环境为Centos7.2。 安装git # yum -y install...

2400
来自专栏电光石火

solr安装配置

环境介绍 solr 6.5.1 tomcat8 jdk1.8

2449

扫码关注云+社区