setuid、setgid、sticky的权限简单用法
如何设置setuid、setgid、sticky的权限:
setuid :置于 u 的 x 位,原位置有执行权限,就置为 s,没有了为 S .
chmod 4xxx file
chmod u+s xxx file
setgid:置于 g 的 x 位,原位置有执行权限,就置为 s,没有了为 S .
chmod 2xxx file
chmod g+s xxx file
sticky:粘滞位,置于 o 的 x 位,原位置有执行权限,就置为 t ,否则为T .
chmod 1xxx file
chmod o+t xxx file
例如:
在root用户下创建一个test目录,并新建一个1.txt文件。
然后在普通用户jyw下删除1.txt文件,发现无法删除。
在root用户下添加setuid权限S,那么普通用户jwy即可删除1.txt文件的权限
所以我们说特殊权限位很危险,一旦被hacker拿到,呵呵了。
我们可以查看哪些命令有特殊权限命令:
find / -type f –perm 4755|xargs ls
ping命令所有用户都能使用,拥有特殊权限,那么我们把s权限解除,普通用户就无法ping了
---------------------------------------------------------------------
setgid:
例如:
对aaa目录属组更改为home,并授权于setgid S权限,此目录下新建的文件属home组。
此时我们对aaa目录解除setgid s权限,此目录下新建的文件不属于home组
-------------------------------------------------------------------------------
sticky粘滞位:
例如:/tmp/ 公用的临时文件存储点
凡是linux用户都能在/tmp/目下创建的文件为所欲为。
tmp文件的用途:
一般是把一个文件夹的权限都打开,然后来共享文件,方便带来的安全隐患,生产环境我们一般不这样使用!
--------------------------------------------------------------------------
关于suid知识小结:针对命令和二进制程序的,脚本不行。
1) 用户或属主对应的前三位权限的X位上如果有S就表示suid权限。当X为上没有小写X执行权限的时候,suid的权限显示的就是大S。
2) suid作用是让普通用户可以以root或其他的用户角色运行只有root或者其他用户才能运行的程序或命令,程序或命令对应本来没有权限操作的文件等。(注意和su及sudo的区别)
3) suid修改的是执行的命令passwd,而不是处理的目标文件/ect/shadow。
4) 仅对二进制命令程序有效,不能用在shell等类似脚本文件上。
5) 二进制命令程序需要有可执行X权限配合。
6) suid权限仅在程序命令执行过程中有效。
7) 执行suid命令的任意系统用户都可以获得该命令程序在执行期间对应的属主权限。
8) suid双刃剑,是一个比较危险的功能,对系统安全有一定的危险,系统suid的无用功能取消suid的权限(安全优化)
setgid权限知识小结:
1) 与suid不同的是,sgid既可以针对文件也可以针对目录设置。
2) sgid是针对用户组权限为修改的。
3) 对于文件来说,sgid的功能如下:
- sgid仅对二进制命令程序有效
- 二进制命令或程序需要有可执行X权限。
- 执行程序的任意用户可以获得该命令程序执行期间所属组的权限
4) 对于目录来说,sgid的功能如下:
- linux里默认情况下所有用户创建文件,默认用户和组都是自身。
- sgid可以让用户再此目录下创建的文件和目录,具有和此目录相同的用户权限。
sticky权限知识小结:
粘滞位1000权限字符t(T),其他用户位的X位上设置。chmod 1755 /tmp
如果对应为有X则字符权限表现为小写否则为大写。
setuid、setgid、sticky的权限简单用法的更多相关文章
- 五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX
五大权限:UGO权限.SetUID SetGID Sticky.ACL权限.chattr(文件系统级别的权限).SELINUX ======================文件属性以及ugo权限= ...
- 关于文件目录等的特殊权限setuid, setgid , sticky chattr, lsattr
有三种特殊权限 总之, 设置这些特殊权限有两种方法, 一是使用 chmod ugo的方式, 另一个是 使用 数字的方式, 通常的读写执行 权限 是 3位 数字, 那么 特殊权限 就用 4位数字, 而且 ...
- sudo控制权限简单用法介绍
为了安全及管理的方便,可将需要用root权限的用户加入到sudo管理,用root的权限来管理系统.利用sudo控制用户对系统命令的使用权限. 普通用户可以查看,但不能删除: 但是在/tmp公共环境下可 ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- Shellz中awk的简单用法
其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
随机推荐
- kafka主题管理
若代理设置了 auto.create.topics.enable=true,这样还未创建topic就往kafka发送消息时, 会自动创建一个 ${num.partitions}个分区和{default ...
- 多线程,线程同步,synchronized关键字的用法
一.什么是多线程 Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorSe ...
- NHibernate with ASP.NET MVC 入门示例
目的:初步了解NHibernate的用法,包括数据库的CRUD, 基于ASP.NET MVC 项目模板 步骤: 创建ASP.NET MVC 新项目 使用NuGet引入FluentNHibernate ...
- 【杂谈】对CopyOnWriteArrayList的认识
前言 之前看<Java并发编程>这本书的时候,有看到这个,只记得"读多写少"."写入时复制".书中没有过多讲述,只是一笔带过(不过现在回头看,发现讲 ...
- 【IT笔试面试题整理】数组中出现次数超过一半的数字
[试题描述]数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. [试题分析]时间复杂度O(n),空间复杂度O(1) 思路1: 创建一个hash_map,key为数组中的数,value为此数 ...
- 【JS点滴】声明提前,变量声明提前,函数声明提前,声明提前的先后顺序
声明提前,函数声明提前,好吧,老生常谈的问题了.正好,前些天在掘金看到一道关于声明提前的笔试题,那么这里就以这道题来作为本文的引子吧,代码如下: console.log(a)//? a();//? ; ...
- Android自定义Aop的Gradle Plugin
[上一篇文章]中讲解了如何在Android使用AOP,会发现在Gradle配置aop会比较麻烦,每个module使用了aop都需要配置.接下来看如何简化配置. 1.创建Module 首先,需要建立一个 ...
- [USACO18FEB]Slingshot
题意可化为: 在二维平面中有n个点,坐标为\((x_i,y_i)\),点权为\(t_i\). 现有m个询问,每次给定点\((x,y)\),求\(\min\{|x-x_i|+|y-y_i|+t_i,|y ...
- IDEA想创建package,却只有directory 解决办法
只有directory,而我想的是new package 这是因为java是普通的文件夹,要设置为source root 就可以啦
- android开发之braodCast
广播问题: 遇到了broadcast中sendBroadcast之后,注册registerReceiver的receiver接受不到广播,原因是permisson权限问题. 自定义的permissio ...