一.关于文件的特殊权限

1.文件与目录设置不止基础权限:r,w,x,还有所谓的特殊权限。特殊权限会拥有一些“特权”。特殊权限为:suid sgid sticky

2.文件的特殊权限:suid sgid sticky

  • ​ SUID(set uid设置用户ID):限定:只能设置在二进制可执行程序上面。对目录设置无效。功能:程序运行时的权限从执行者变成程序所有者的权限
  • ​ SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置。功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的所属组
  • ​ Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位

3.这3个特殊权限对应的数值为

SUID SGID Stickybit
u+s或u=4 g+s或g=2 o+t或o=1

二.suid

1.SUID属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。使用”ls -l” 或者”ll” 命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的”s”,就表明该执行文件拥有SUID属性。比如/usr/bin/passwd文件

[elk@node5 ~]$ which passwd
/bin/passwd [elk@node5 ~]$ whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz [elk@node5 ~]$ ll /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd [elk@node5 ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd

2.普通用户elk,没有对shadow文件写入的权限, 但是elk用户使用passwd修改自己密码时,可以修改shadow文件中的内容,这是什么原因?

[root@node5 ~]# ll /etc/shadow
----------. 1 root root 1179 9月 19 2017 /etc/shadow
[root@node5 ~]# su - mk
上一次登录:二 5月 8 21:07:24 CST 2018pts/0 上
[elk@node5 ~]$ passwd [root@node5 ~]# vim /etc/shadow #查看shadow文件已经被elk用户修改成功。

因为mk用户执行passwd命令时,权限会提升成root用户,所以可以修改成功。

3.给less命令添加suid权限

[elk@node5 ~]$ which less
/bin/less
[elk@node5 ~]$ ll /bin/less
-rwxr-xr-x. 1 root root 158240 Jul 31 2015 /bin/less [elk@node5 ~]$ ll /etc/shadow
---------- 1 root root 1242 Oct 14 02:20 /etc/shadow [elk@node5 ~]$ less /etc/shadow
/etc/shadow: Permission denied [elk@node5 ~]$ exit
logout
[root@node5 ~]# chmod u+s /bin/less [root@node5 ~]# su - elk
Last login: Thu Oct 15 11:39:37 CST 2020 on pts/3 [elk@node5 ~]$ less /etc/shadow
tss:!!:18341::::::
postgres:$6$W/xWXomt$Vry4J0aBsW4EyiMDW90kfzi45lAWKeYwBPBJzdiX3Yj1twH6zn7D9cG8PJXAMhcwTaIiuJNZxCtLFh/Ht6CwK/:18365::::::
esnode:$6$fznP2Oqd$02x2dTMV0kP5Ra780.sw.W06KZVl7ua8sA7QBMfEsYp0iUs1ukz.9H/iqYjToLLLa1TPSGWDC6a8yVJFZCVV5/:18378:0:99999:7:::
elk:$6$An7lKn2Q$dSuliu1h.Wn42GsrRwKPDS6bgEmTR8TlMsWMHIVWIEXOVbsKwvBcKDDNv.Mxki7aOwV8EBASQFAGQ9W.N/LeV.:18548:0:99999:7:::
logstash:$6$9yY5A65j$YzViQt8dC7mb9ID4my1x1o2dZX3ovQbTfsMr3f5UaJkt3THQRMOmt0pq2YIN0W.zlyU/hRlZe.9vocyFepTYl1:18548:0:99999:7::: #执行less命令的时候,用户权限提升到了root权限
[root@node5 ~]# ps -ef | grep less
root 68019 67976 0 14:57 pts/3 00:00:00 less /etc/shadow
root 68034 58078 0 14:57 pts/5 00:00:00 grep --color=auto less [elk@node5 ~]$ ll /bin/less
-rwsr-xr-x. 1 root root 158240 Jul 31 2015 /bin/less [elk@node5 ~]$ exit
logout [root@node5 ~]# chmod u-s /bin/less [root@node5 ~]# ll /bin/less
-rwxr-xr-x. 1 root root 158240 Jul 31 2015 /bin/less [root@node5 ~]# chmod 4755 /bin/less [root@node5 ~]# ll /bin/less
-rwsr-xr-x. 1 root root 158240 Jul 31 2015 /bin/less [root@node5 ~]# chmod u-s /bin/less [root@node5 ~]# ll /bin/less
-rwxr-xr-x. 1 root root 158240 Jul 31 2015 /bin/less

另外:chmod 4755 /usr/bin/less # 等同于 chmod u+s /usr/bin/less

三.SGID

1.SGID既可以给二进制可执行程序设置,也可以给目录设置。

2.SGID的功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限。

[root@node5 ~]# mkdir ceshi

[root@node5 ~]# ll -d ceshi
drwxr-xr-x 2 root root 6 Oct 15 15:10 ceshi [root@node5 ~]# chmod g+s ceshi [root@node5 ~]# !ll
ll -d ceshi
drwxr-sr-x 2 root root 6 Oct 15 15:10 ceshi [root@node5 ~]# chown :elk ceshi [root@node5 ~]# !ll
ll -d ceshi
drwxr-sr-x 2 root elk 6 Oct 15 15:10 ceshi [root@node5 ~]# touch ceshi/ceshi.txt [root@node5 ~]# ll ceshi/ceshi.txt
-rw-r--r-- 1 root elk 0 Oct 15 15:12 ceshi/ceshi.txt

四.Stickybit

1.Stickybit只作用于目录。

2.Stickybit的功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除。

3.Stickybit的用法:chmod o+t /tmp/test/

4.例: 系统中的tmp目录就是这样

[root@node5 ~]# ll -d /tmp
drwxrwxrwt. 10 root root 4096 Oct 15 10:12 /tmp

linux 文件的特殊权限:suid sgid sticky的更多相关文章

  1. linux 文件三大特殊权限(SUID SGID SBIT)

    SGID(这个应该是文件共享里面最常用权限管理手段) 作用于目录或可执行程序,作用于目录代表在此目录创建的文件或目录,默认的属组继承此目录的属组.例如 我这个testgroup 没有设置SGID .我 ...

  2. 【Linux】文件特殊权限 SUID/SGID/Sticky Bit

    linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...

  3. Linux 特殊用户权限 suid,sgid, sticky

    每个进程会维护有如下6个ID: 真实身份 : real UID, readl GID --> 登录 shell 使用的身份 有效身份 : effective UID, effective GID ...

  4. 特殊权限:SUID,SGID,Sticky

    特殊权限passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者:    chmod u+s FILE    chmod u-s FILE        如果FIL ...

  5. chmod 4777? 文件特殊权限 SUID SGID StickyBit

    故事引入 今天碰到了一条指令, test 怎么在777前还有一位,颠覆了我的认知啊,这时候必须翻鸟哥神书了,找到一个链接<7.4.3 文件特殊权限:SUID/SGID/Sticky Bit> ...

  6. linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit

    一 cd : . 代表当前目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表[目前用户身份]所在的自家目录 与cd效果相同 ~account 代表 account 这个用户的自家家目录 二m ...

  7. SUID,SGID,Sticky Bit详解(转)

    SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码.但是保存用户密码的/etc/shadow文件的权限是400,也就是说只有文件的所有者root用户可以写入, ...

  8. linux 文件类型和权限

    linux 文件类型和权限 ls -l 显示: [user@wyf-201 ~]$ ll total 0 -rw-rw-r--. 1 user user 0 Aug 27 10:49 1.txt dr ...

  9. SUID ,SGID ,Sticky

    SUID passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s FILE chmod u-s FILE 如果FILE本身原来就有执行权限, ...

  10. linux UID,GID,EUID,EGID,SUID,SGID

    SUID, SGID, sticky位可以参考: http://onlyzq.blog.51cto.com/1228/527247/ SUID属性只能运用在可执行文件上,当用户执行该执行文件时,会临时 ...

随机推荐

  1. Godot UI线程,Task异步和消息弹窗通知

    目录 前言 线程安全 全局消息IOC注入 消息窗口搭建 最简单的消息提示 简单使用 仿Element UI ElementUI 效果 简单的Label样式 如何快速加载多个相同节点 修改一下,IOC按 ...

  2. Leetcode-最小覆盖子串

    题目描述 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 注意:如果 s 中 ...

  3. c# webapi swagger

    如何配置swagger? 在使用项目中,我们希望去查看我们的webapi的测试,那么我们是需要去有一个集成的测试的. 步骤 1.在nutget管理包中下载swagger包. 2.这样会在App_sta ...

  4. (二)asyncio的简单使用,python异步高效处理数据,asyncio.get_event_loop(),loop.run_until_complete(main()),loop.close()

    Asyncio 是一个基于事件循环的异步I/O框架,它提供了高效的协程实现,能够轻松地编写高并发的Python程序.Asyncio 在 Python 3.4 中首次引入,它的核心是事件循环(Event ...

  5. pycharm更换主题,pycharm更换皮肤,pycharm更换不同颜色

    1.首先  点击File→进入setting 2. 在settings里面找到appearance 3.选择 Theme,下拉即可修改 4.选择不同的主题,darcula是黑色,其他两个是白色

  6. 《c#高级编程》第4章C#4.0中的更改(七)——命名参数和可选参数

    一.概念 C#中的命名参数和可选参数是两种函数参数的特殊形式,它们可以提高代码的可读性和灵活性. 命名参数 命名参数允许我们在调用函数时指定参数名称,从而不必按照函数定义时的参数顺序进行传参.这样做可 ...

  7. 浅谈sparse vec检索工程化实现

    前面我们通过两篇文章: BGE M3-Embedding 模型介绍 和 Sparse稀疏检索介绍与实践 介绍了sparse 稀疏检索,今天我们来看看如何建立一个工程化的系统来实现sparse vec的 ...

  8. Oracle 在PL/SQL将字符串分割输出

    Oracle 在PL/SQL将字符串分割输出 示例如下: declare begin for maina in (select tt.line ll from (select regexp_subst ...

  9. Apsara Stack 技术百科 | 联结良性生态,筑千行百业的数字基石

    ​简介:作为现今IT领域最重要的课题:基础设施云化,离不开与伙伴的携手合作,如何让云上解决方案能充分释放价值的同时形成一个相互依存的自循环生态系统,混合云君来跟你聊聊! ​ 生态系统这个词在维基百科上 ...

  10. 监控最佳实践--redis及业务接口

    简介: 监控最佳实践--redis及业务接口 1. 背景 1.1 问题 2020-12-04,客户侧redis集群版监控DB0 CPU突增至100%,导致数据库无法正常服务,经排查客户侧业务上存在2M ...