特殊权限 - SUID GUID STICKYBIT
◆ SUID ( Set User ID )
Linux里,用户的ID被称作UID。在实际生产中,可能需要临时借用别的用户执行程序,因此需要能够临时变更自己UID的机能叫做SUID。借助SUID权限,用户可以临时调用root权限。
※ 通常,文件的执行是由所属者发起,然而,赋予SUID权限后可临时继承所有者的权限(来执行文件)。通常用于二进制可执行文件上,文件夹赋予该权限无意义。
举个例子,假如我们要变更密码、需要编辑/etc/shadow文件,然而这个文件一般用户并没有修改权限。但由于更改密码的命令 passwd拥有SUID权限、一般用户就可以通过该命令来(继承root的权限进而)更改密码。同时我们也可以看到在ll命令下,拥有SUID权限的文件,执行权限的位置会由x变为s。
$ ls -l /usr/bin/passwd -rwsr-xr-x. root root Sat /usr/bin/passwd
从上面的命令中可以看到,所有者的权限显示为rws,其中,执行权变成了s。也就是说,有执行该命令权限的而用户可以临时继承所有者(root)的权限。
需要通过chmod来赋予(二进制可执行)文件SUID时,可通过添加数字“4000”来赋予权限。比如,原来的权限为755(rwx r-x r-x),赋予SUID权限后变成4755,即(rws r-x r-x)。若想用字母表示,则可用u+s来代替4755.
◆ 例子 : 给magedu.txt赋予「 rws r-x r-x 」权限
$ chmod 4755 magedu.txt
◆ 或 : 把magedu.txt的权限由755变为4755 (SUID)
$ chmod u+s magedu.txt
◆ SGID ( Set Group ID )
除了继承所有者权限的SUID、与之相对的还有继承组权限的SGID。默认情况下,用户创建文件(夹)时,其属组为此用户所属的主组。一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组。在生产生活当中,GUID权限通常用于创建协作目录。拥有SUID权限时,所有者的执行权限表现为s,而拥有GUID权限的情况下则是组权限中表达执行权限的x变为s。
通过chmod设置权限时,可以加算数字2000、或者使用文字g+s来赋予权限。
注:很少用来设置单个文件。
◆ 例子 : 把文件夹magedu 赋予「 rwx r-s r-x 」权限
$ chmod magedu
◆ 或 : 用字母来添加GUID 权限
$ chmod g+s magedu
◆ 粘滞位(sticky bit)
被设置了粘滞位的文件夹,其中的文件及子目录原来具有的权限将无效化。只有所有者及root才能对文件进行修改或删除。当需要「使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下他人的文件」的时候,sticky位即可派上用场。比如系统中的 /tmp 目录就已经设定了粘滞位。
$ ll -d /tmp
drwxrwxrwt. 10 root root 4096 Sat 06 16:25 /tmp
粘滞位在“其它用户权限”中的执行权上显示为t。用chmod赋予该权限时、可加算数字 1000 来设置。同时也可以用字母(o+t)来赋予权限。
◆ 例 : 给目录magedudir 赋予「 rwx rwx rwt 」权限
$ chmod magedudir
◆ 或 : 把目录magedudir 的权限由「755」变为「1755」
$ chmod o+t magedudir
◆ SUID、SGID、粘滞位的区别
◆ umask 命令(权限默认值)
文件或目录创建后都有其默认权限,而默认权限的设置与查看,由umask负责。
可以直接执行umask命令来查看umask的值。新建文件的默认权限则由数字666减去umask值,而新建目录的权限则由数字777减去umask的值。root用户的默认umask值为「0022」。则新建文件的权限为
666-022=644、新建目录的权限为 777-022=755。
※注:文件默认权限用666减去umask后可能会出现个位为奇数的情况,这样就会默认具有执行权限。为避免这种现象,系统会自行将奇数+1。例如:666-125=541(r-x rw- –x),所有奇数+1后,实际权限为642(rw- r– -w-)
◆ 例子 : 确认当前umask值
$ umask
※ umask值可以由用户指定。
※ 如需长期使用,umask设置需要写入配置文件。全局设置: /etc/bashrc 用户设置:~/.bashrc
◆ 例子 : 把umask值从0022变为0027
$ umask
※ 变更umask值后新建文件的权限即为(-rw r– —)。
特殊权限 - SUID GUID STICKYBIT的更多相关文章
- chmod 4777? 文件特殊权限 SUID SGID StickyBit
故事引入 今天碰到了一条指令, test 怎么在777前还有一位,颠覆了我的认知啊,这时候必须翻鸟哥神书了,找到一个链接<7.4.3 文件特殊权限:SUID/SGID/Sticky Bit> ...
- 八、linux文件系统上的特殊权限 SUID 、GUID、Sticky
安全上下文 前提:进程有属主和属组,文件有属主和属组 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组 进 ...
- 【Linux】文件特殊权限 SUID/SGID/Sticky Bit
linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...
- 1.6 suid/guid
1.很系统供应商不允许使用这一命令,或者即使被置位,也会被忽略,这一命令会带来安全性风险. suid意味着该用户对自己的shell脚本设置了这种权限,那么其他用户执行该脚本时,也将拥有该用户相同的权限 ...
- linux系统的 suid/guid简单介绍 linux suid guid
我们在前面曾经提到过s u i d和g u i d.这种权限位近年来成为一个棘手的问题.很多系统供应商不允许实现这一位,或者即使它被置位,也完全忽略它的存在,因为它会带来安全性风险.那么人们为何如此大 ...
- suid/guid用法 suid/guid详细解析
suid/guid 我们在前面曾经提到过s u i d和g u i d.这种权限位近年来成为一个棘手的问题.很多系统供应商不允许实现这一位,或者即使它被置位,也完全忽略它的存在,因为它会带来安全性风险 ...
- 特殊权限 SUID、SGID、Sticky
摘录之----------QuintinX 一. 前提 本篇主要讲解SUID, SGID, Sticky三个权限的基本原理和应用. 为什么要使用特殊权限? 比如系统中假如有超过四类人然而每一类人都需要 ...
- Linux 特殊权限 SUID,SGID,SBIT
setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写.我们一般会再次把它们缩写为 suid 和 ...
- 特殊权限SUID
特殊权限SUID SUID : 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s File chmod u-s File 如果 FileB本身原来就有执行权限,则S ...
随机推荐
- [opencv] copyTo函数的使用方法
OpenCV中image.copyTo()有两种形式: 1.image.copyTo(imageROI),作用是把image的内容粘贴到imageROI: 2.image.copyTo(imageRO ...
- netcore部署
配置的几种方式: https://www.cnblogs.com/humin/p/10330983.html Linux下配置sdk: https://dotnet.microsoft.com/dow ...
- 共享文件word / excel /ppt 被用戶自己锁定无法编辑-解決方法
共享文件word / excel /ppt 被用戶自己鎖定無法編輯,但用戶嘗試過關閉所有文件和重啓過系統,依然無法編輯. 搜到解決方法: Just in case someone looking fo ...
- vue时间戳转换(10位数)/(13位)
<template> <!-- time为时间戳 --> <div>{{time | formatDate}}</div> <!-- 结果为 20 ...
- 最新 珍岛java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.珍岛等10家互联网公司的校招Offer,因为某些自身原因最终选择了珍岛.6.7月主要是做系统复习.项目复盘.LeetCode ...
- java类加载全过程
引用:http://blog.csdn.net/haluoluo211/article/details/49908463 http://www.cnblogs.com/pengfeiliu/p/442 ...
- vim文本编辑器的介绍及使用
(一)什么是vim编辑器 在Linux系统中配置应用服务,实际上就是在修改它的配置文件(配置文件可能有多个,其中包含不同的参数),而且日常工作中也一定免不了编写文档的事情吧,这些都是要通过文本编辑器来 ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验三《敏捷开发与XP实践》 实验报告
实验内容与要求 1.XP基础 极限编程(Extreme Programming,XP)是一种全新而快捷的软件开发方法.XP团队使用现场客户.特殊计划方法和持续测试来提供快速的反馈和全面的交流: XP是 ...
- JPA扩展(自定义sql)
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- SAS学习笔记39 MINOPERATOR | NOMINOPERATOR
MINOPERATOR(可理解为Macro IN Operator的简写,帮助大家记忆)系统选项用于控制是否在宏程序中是否可以用IN操作符或#操作符,默认值为NOMINOPERATOR.需要注意的是, ...