【基础知识】Sticky Bit, SUID,SGID

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

1.Sticky Bit

1)作用于文件:曾经被一些老的Unix系统用来将可执行文件在第一次执行后放在swap中提高后续该程序的运行速度,现在已经过时。

2)作用于目录:若一个目录的Sticky bit被设置,那么只有这个目录的owner和root用户才能对目录中的文件或子目录进行删除和重命名:

gnuhpc@gnuhpc-desktop:~$ mkdir teststickybit

用ls命令看这个目录现在的权限情况:

drwxr-xr-x  2 gnuhpc gnuhpc     4096 2011-09-10 13:08 teststickybit

我们将其中放入一个文件a.out后目录的情况是:

gnuhpc@gnuhpc-desktop:~/teststickybit$ ls -l
total 8
-rwxrwxrwx 1 gnuhpc gnuhpc 7835 2011-08-23 16:06 a.out

添加sticky bit:

gnuhpc@gnuhpc-desktop:~$ chmod +t teststickybit

现在目录的权限变为:

gnuhpc@gnuhpc-desktop:~$ ls -ld teststickybit
drwxr-xr-t 2 gnuhpc gnuhpc 4096 2011-09-10 13:11 teststickybit

尽管a.out有对所有人的全部权限,但是现在只能又其owner或者root对其进行重命名和删除:

gnuhpc@gnuhpc-desktop:~/teststickybit$ su guest
Password:
guest@gnuhpc-desktop:/home/gnuhpc/teststickybit$ mv a.out b.out
mv: cannot move `a.out’ to `b.out’: Permission denied
guest@gnuhpc-desktop:/home/gnuhpc/teststickybit$ rm a.out
rm: cannot remove `a.out’: Permission denied

它可以保护文件,这也是/tmp有sticky bit的原因了。

2.SUID

全称是Set User ID,顾名思义,如果一个文件的SUID被设置了,那么当运行这个程序时,用户ID就会被“设置”(实际上并没有,只是权限上放开)为这个文件的owner的User ID。举例说明,我有一个文件设置了SUID,它的owner是root,那么我用一个用户,比如gnuhpc,来运行这个程序,这个程序会以root身份的权限来执行。这在你既希望某程序用某一个特定用户(比如root)的权限来做一些事,又不想给使用者都分配该用户权限时使用。希望加减SUID的都通过chmod u+/- s filename即可。

举个例子:

ping可以测试网络是否连接正常,其采用了ICMP协议进行收发报文。但是只有root用户才能建立ICMP报文,如何解决?通过SUID位来解决。看看/bin/ping的属性就知道了(rws中的那个s)。

3.SGID

类似的,某用户运行设置了SGID的文件时,其权限好像是该文件所属组的成员运行该文件一样。希望加减SGID的都通过chmod g+/- s filename即可。

 

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

转载于:https://www.cnblogs.com/gnuhpc/archive/2012/12/04/2802298.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1236. 网络爬虫(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给定一个链接 startUrl 和一个接口 HtmlParser ,请你实现一个网络爬虫,以实现爬取同 startUrl 拥有相同 域名标签 的全部链接。该爬虫得到的全部链接可以 任何顺序 返回结果。 你的网络爬虫应当按照如下模…

启动不起来_国产开源工具:U盘启动工具Ventoy v1.0.29发布——墨涩网

Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把ISO文件拷贝到U盘里面就可以启动了,无需其他操作。你可以一次性拷贝很多个不同类型的ISO文件,在启动时Ventoy会显示一个菜单来选择。 无差异支持Legacy B…

众多Android 开源项目再次推荐,学习不可错过

FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb、ePub和fb2。此外还支持直接读取zip、tar和gzip等压缩文档。项目地址:http://www.fbreader.org/FBReaderJ/Angle Angle是一款专为Android平台设计的&#…

LeetCode 1231. 分享巧克力(极小极大化 二分查找)

文章目录1. 题目2. 解题1. 题目 你有一大块巧克力,它由一些甜度不完全相同的小块组成。我们用数组 sweetness 来表示每一小块的甜度。 你打算和 K 名朋友一起分享这块巧克力,所以你需要将切割 K 次才能得到 K1 块,每一块都由一些 连续 的小…

筛选末位数字为1或5_看看广州示范性高中排行榜,怎么填报志愿?如何运用末位考生分数...

人们评价一所高中学校的层次通常会用两个指标:高考升学率和录取分数线,升学率又多以高优率高低为排序标准。在志愿填报期间,不少家长总希望我对学校进行比较。我试以三个维度对广州的70所示范性高中学校(校区)进行比较供大家参考。2016-2018近…

简明Python3教程 8.控制流

简介 迄今为止我们见到的所有程序总是含有一连串语句并且python忠实的顺序执行它们。 那么如何改变它们的执行顺序呢?例如你希望程序根据不同情况作出不同反应,按照当前时间分别 打印出’Good Morning’或’Good Evening’? 也许你已经猜到了&#xff0…

LeetCode 1166. 设计文件系统(哈希map)

文章目录1. 题目2. 解题1. 题目 你需要设计一个能提供下面两个函数的文件系统: create(path, value): 创建一个新的路径,并尽可能将值 value 与路径 path 关联,然后返回 True。 如果路径已经存在或者路径的父路径不存在,则返回 …

python 生成html文件浏览器_Handout库:能将python脚本转化为html展示文件

有的时候我们需要将python代码进行展示讲解,这个时候使用py文件进行讲解效果并不是最好的。如果能转化为html文件,在浏览器中展示,那就完美了。好消息是存在一个名为handout的库可以实现我们的设想。安装pip3 installU handout快速学习下面是…

转 OFBIZ webservice简介

OFBIZ webservice简介 Opentaps(OFBiz 9.04之后)中webservice用的是AXIS2,最开始自己在网上搜了好多资料,自己拿回来测试,发现都不对。后自己再找了下AXIS的资料说,那种报错很有可能是由于两个版本不对引起的,所以就决…

LeetCode 1087. 字母切换(回溯)

文章目录1. 题目2. 解题1. 题目 我们用一个特殊的字符串 S 来表示一份单词列表,之所以能展开成为一个列表,是因为这个字符串 S 中存在一个叫做「选项」的概念: 单词中的每个字母可能只有一个选项或存在多个备选项。 如果只有一个选项&…

遍历删除_面试难题:List 如何一边遍历,一边删除?

1. 新手常犯的错误可能很多新手(包括当年的我&#xff0c;哈哈)第一时间想到的写法是下面这样的&#xff1a;public static void main(String[] args) { List platformList new ArrayList<>(); platformList.add("博客园"); platformList.add("…

Delphi下物理删除dBase数据库的*.dbf文件

{ ************************************************************ }{ }{ 数据库操作实例 …

LeetCode 1060. 有序数组中的缺失元素(二分查找)

文章目录1. 题目2. 解题2.1 一次遍历2.2 二分查找1. 题目 给出一个有序数组 A&#xff0c;数组中的每个数字都是 独一无二的&#xff0c;找出从数组最左边开始的第 K 个缺失数字。 示例 1&#xff1a; 输入&#xff1a;A [4,7,9,10], K 1 输出&#xff1a;5 解释&#xff1…

iOS代码工具箱

判断日期是不是同一天&#xff0c;不要求是小时、分钟要一样。from&#xff1a;http://www.oliverfoggin.com/nsdate-isequaltodatetounitgranularity/?utm_sourceiOSDevWeekly&utm_campaigniOS_Dev_Weekly_Issue_115&utm_mediumemail #import <Foundation/Foundat…

python天气预报官网_python 实现对天气预报官网未来一周七天的天气情况抓取

通过HTMLPaser和urlib模块对网页进行抓取并分析实现步骤&#xff1a;1、自定义MYHTMLParser类2、实例化类并访问天气预报官网3、抓取关键数据4、对数据进行切片处理并输出字典from html.parser import HTMLPaser #处理页面模块from urllib import request #访问网站模块L […

LeetCode 536. 从字符串生成二叉树(递归)

文章目录1. 题目2. 解题1. 题目 你需要从一个包括括号和整数的字符串构建一棵二叉树。 输入的字符串代表一棵二叉树。 它包括整数和随后的0&#xff0c;1或2对括号。 整数代表根的值&#xff0c;一对括号内表示同样结构的子树。 若存在左子结点&#xff0c;则从左子结点开始…

LeetCode 1062. 最长重复子串(二分查找)

文章目录1. 题目2. 解题1. 题目 给定字符串 S&#xff0c;找出最长重复子串的长度。如果不存在重复子串就返回 0。 示例 1&#xff1a; 输入&#xff1a;"abcd" 输出&#xff1a;0 解释&#xff1a;没有重复子串。示例 2&#xff1a; 输入&#xff1a;"abbaba…

测试工具的选择和使用

Parasoft白盒测试工具集 工具名支持语言环境简介JtestJava代码分析和动态类、组件测试JcontractJava实时性能监控以及分析优化C TestC,C代码分析和动态测试CodeWizardC,C代码静态分析InsureC,C实时性能监控以及分析优化.test.Net代码分析和动态测试Compuware白盒测试工具集 工具…

ios定位权限plist_iOS-info.plist 中添加定位权限

一般在项目中添加权限只需要看这一篇文章&#xff1a;https://www.jianshu.com/p/2a309504cec8 就够了&#xff0c;但是位置权限说明有点麻烦&#xff0c;现总结如下&#xff0c;方便后期使用。定位权限一般有四个&#xff1a;NSLocationWhenInUseUsageDescriptionNSLocationAl…

iOS 6 的5个新特性创建杀手级应用

下面是5个iOS 6 的新特性&#xff0c;可以根据需要集成到新的App中&#xff1a; 1. Sharing 一个新的Social 框架&#xff0c;提供了简单的接口访问用户的social media账户&#xff0c;如Twitter、Facebook和中国的微博服务等等。你可以手工处理&#xff0c;或者简单实用UIKit的…