一. 基本含义和作用

1. SUID:当设置了SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。

2. SGID:与上面的内容类似。用于设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的属性.文件运行时运行者将具有所属组的特权

3. sticky-bit:该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除其他用户创建的文件。sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源

4. chattr:锁定一个文件为不可修改或者不可删除
chattr + i  hong.txt:锁定,这在ext2和ext3文件中有效,在reiserfs文件系统中无效,
chattr -i hong.txt:解锁
chattr +a hong.txt   只能在文件中追加东西,不能删,就是只能用echo "hello" >> hong.txt, 不能在vim中进行追加,并且不能用chmod更改权限。
lsattr查看属性
 
实例:linux系统优化
把/etc/passwd,/etc/shadow,etc/group,/etc/gshadow,/etc/inittab锁定并且改名 

二. 设置

操作这些标志与操作文件权限的命令是一样的, 都是 chmod.  set位的4对应SUID中的set位,2对应SGID的set位,1对应最后一组中的粘滞位,比如4770,2770,1770.或者如下

chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户)
chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名)
chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)

设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
如:

rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)
rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)
rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)

三. 案例

1. 创建/test目录,在此目录中任何用户都可以创建文件或目录,但只有用户自身和root用户可以删除用户所创建的文件或目录。

分析:

在此目录中任何用户都可以创建文件或目录,只要将目录的权限设为777即可。只有用户自身和root用户可以删除用户所创建的文件或目录,这个要求通过普通的权限设置是无法完成的,这里必须要用到粘滞位。
粘滞位主要是为公共目录(例如权限为777的)设置,权限字符为“t”,粘滞位的权限数字为1,作用是用户不能删除该目录中其他用户的文件
chmod  /test (貌似755也可以,下次测试下)

或者chmod o+t /test
如果目录设置了粘滞位,那么这个目录只有属主和root才能删除,作用就是把一个文件夹的权限都打开,作为共享文件。每个人都能管理自己的东西,别人无权干涉
 

2. 创建共享目录 /home/admins: 属组为adminuser,有读,写,可执行权限,其他用户没有任何权限,在/home/admins目录中创建的文件,会自动继承adminuser组。
mkdir /home/admins/
groupadd adminuser
chown .adminuser /home/admins/
chmod /home/admins/ 或者 chmod g+w,o= /home/admins/ (o= 表示不给o任何权限,用空表示, 在g+w,后面不能有空格,要紧跟着o= )
chmod /home/admins

四. 权限对日常操作的影响

1. 有只读权限的用户不能用 cd 进入该目录;还必须有执行权限才能进入。

2. 有执行权限的用户只有在知道文件名并拥有该文件的读权限的情况下才可以访问目录下的文件。

3. 必须有读和执行权限才可以使用 ls 列出目录清单,或使用 cd 进入目录。

4. 如用户有目录的写权限,则可以创建、删除或修改目录下的任何文件或子目录,既是该文件或子目录属于其他用户。

 

suid, sgid,粘滞位,chattr的更多相关文章

  1. SUID、SGID、粘滞位

    粘滞位(Stikybit) +t,只有用户自己可以删除自己创建文件,其他用户只能查看,不能删除.        1:创建两个用户  useradd oo                         ...

  2. 深入理解linux的权限设置和SUID,SGID以及粘滞位

    我们知道文件的权限可以用三个八进制数字表示.其实文件的权限应该用四个八进制来表示,不过用 ls -l 命令时,只显示三个罢了.那个没有显示的八进制数字其实是第一个,它用来设定一些特殊权限.这个八进制数 ...

  3. Linux中的特殊权限粘滞位(sticky bit)详解

    Linux下的文件权限 在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问.最为我们熟知的一个文件或目录可能拥有三种权限,分别是读.写.和执行操作, ...

  4. 【转】Linux中的特殊权限粘滞位(sticky bit)详解

    Linux下的文件权限 在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问.最为我们熟知的一个文件或目录可能拥有三种权限,分别是读.写.和执行操作, ...

  5. Linux文件和目录的粘滞位(sticky bit)

    今天维护系统时发现一个非常诡异的问题:AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除.诡异! 几经周转,发现AAA用户创建文件位置的上层目录 ...

  6. 自学linux——22.粘滞位的了解及使用

    粘滞位的了解及使用 一.权限 1.文件的权限 r (read) :可读取该文件的实际内容w(write):可以编辑,新增或者修改该文件的内容(但不含删除该文件)x(execute):代表该文件可以被系 ...

  7. linux—粘滞位的设置

    粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标.最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件.如果不为目录设置粘滞位,任 ...

  8. Linux粘滞位的设置

    粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标.最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件.如果不为目录设置粘滞位,任 ...

  9. Linux中相关知识(atexit(),fork(),粘滞位)

    1.atexit()函数 函数名: atexit 头文件:#include<stdlib.h> 功 能: 注册终止函数(即main执行结束后调用的函数) 用 法: int atexit(v ...

随机推荐

  1. iOS倒计时

    现在开发基本上都有发送验证码,倒计时,下面说一种 #import <UIKit/UIKit.h> @interface UIButton (CountDown) -(void)startT ...

  2. 在tomcat中的conf文件夹下找server.conf 配置如下代码,可省略项目名路径访问 如 localhost:8080 即可访问到项目

    <Context path="" docBase="C:\Workspaces\Projects\SLSaleSystem_dw\WebRoot" rel ...

  3. socket,TCP/IP的理解(转)

    TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间 ...

  4. 273. Integer to English Words数字转为单词

    [抄题]: Convert a non-negative integer to its english words representation. Given input is guaranteed ...

  5. 572. Subtree of Another Tree 大树里包括小树

    [抄题]: Given two non-empty binary trees s and t, check whether tree t has exactly the same structure ...

  6. 基于HTML5的RDP访问实战

    基于HTML5的RDP访问实战 1.安装guacamole   2.下载源码   3.安装服务端 安装报错 错误   参考 http://www.remotespark.com/html5.html ...

  7. RotbotFrameWork接口测试

    一.添加接口测试Library 二.参数说明 三.关键字使用说明 Set Varibae: 参数化接口地址 Connect To Databse Using Custom Param: 连接数据库(需 ...

  8. 浅谈 js中parseInt函数的解析[转]

    首先还是从很热门的实例parseInt("09")==0说起. parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制. 比如说pa ...

  9. Python代码规范利器Flake8

    写代码其实是需要规范的,团队中更是如此:不然 Google 也不会发布各种编码规范,耳熟能详的有Google C++ 风格指南,Google Python 风格指南,等等. 这些规范有用吗?有用也没用 ...

  10. [SoapUI] 循环遍历某个Test Case下的所有Test Step,将Cookie传递给这些Test Step

    import com.eviware.soapui.support.types.StringToStringMap //Get cookie's value from the project leve ...