如何设置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的功能如下:

  1. sgid仅对二进制命令程序有效
  2. 二进制命令或程序需要有可执行X权限。
  3. 执行程序的任意用户可以获得该命令程序执行期间所属组的权限

4) 对于目录来说,sgid的功能如下:

  1. linux里默认情况下所有用户创建文件,默认用户和组都是自身。
  2. sgid可以让用户再此目录下创建的文件和目录,具有和此目录相同的用户权限。

sticky权限知识小结:

粘滞位1000权限字符t(T),其他用户位的X位上设置。chmod 1755 /tmp

如果对应为有X则字符权限表现为小写否则为大写。

setuid、setgid、sticky的权限简单用法的更多相关文章

  1. 五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX

    五大权限:UGO权限.SetUID SetGID Sticky.ACL权限.chattr(文件系统级别的权限).SELINUX   ======================文件属性以及ugo权限= ...

  2. 关于文件目录等的特殊权限setuid, setgid , sticky chattr, lsattr

    有三种特殊权限 总之, 设置这些特殊权限有两种方法, 一是使用 chmod ugo的方式, 另一个是 使用 数字的方式, 通常的读写执行 权限 是 3位 数字, 那么 特殊权限 就用 4位数字, 而且 ...

  3. sudo控制权限简单用法介绍

    为了安全及管理的方便,可将需要用root权限的用户加入到sudo管理,用root的权限来管理系统.利用sudo控制用户对系统命令的使用权限. 普通用户可以查看,但不能删除: 但是在/tmp公共环境下可 ...

  4. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  5. Shellz中awk的简单用法

    其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...

  6. CATransition(os开发之画面切换) 的简单用法

    CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...

  7. jquery.validate.js 表单验证简单用法

    引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...

  8. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  9. [转]Valgrind简单用法

    [转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...

随机推荐

  1. elk-nginx输出json格式的日志

    把Nginx日志的格式输出成JSON格式展示在Kibana面板,生产环境中基本都是这么使用. 1, 配置nginx 主要修改nginx的访问日志格式,这里定义成json格式,以便后面logstash更 ...

  2. spec 文件详解

    转自http://blog.sina.com.cn/s/blog_43b39e250100nnu4.html rpm软件包系统的标准分组:/usr/share/doc/rpm-4.3.3/GROUPS ...

  3. linux比较文件夹的差异命令

    可以使用 diff -ruNa s1 s2 或者使用 diff -uN c1 c2 结果如下: sandbox$ tree . |-- dir1 | |-- a.txt | `-- b.txt `-- ...

  4. SpringMVC融合Swagger UI使用

    相信大家都很熟悉springmvc,在用其进行开发工作的时候,有没有遇到几个小问题?比如: 1.前后端分离的模式下,前端开发人员如何得知后端的开发进度,有哪些接口可用? 2.后端开发人员在测试自己的接 ...

  5. 长沙.NET社区之光

    奈何万事开头难 迎着改革开放四十年带来的春风,长沙的互联网生态环境以唐胡子俱乐部为首的一众互联网社群讲长沙互联网的环境推上了一个新的台阶.年底,我与有幸一起共事的溪源兄,下班后一起闲聊,觉着长沙的.N ...

  6. JS存储cookie读取cookie删除cookie详细用法

    假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量 ...

  7. C# 往线程里传参数的方法总结

    Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托.   Thread (ThreadStart) 初始化 ...

  8. Java基本数据类型总结(转载)

    Java基本数据类型总结 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型.java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量 ...

  9. Java基础——网络编程(一)

    本文主要记录网络编程的一些基础知识,学了前班部分,对专业术语有些蒙,但是,收货也是很多很多的.观察了自己计算机的进程,查找其他网络地址的IP,对互联网的层次关系有了更深一步的了解.下面多是概念的摘录, ...

  10. 阿里云数据库配置学习笔记(二):下载并配置MySQL数据库

    参考资料:阿里云官方文档 2018-02-20 一.MySQL数据库的下载 在Ubuntu环境下安装MySQL数据库十分简单 在命令行中输入 sudo apt-get update(更新软件源,预防出 ...