一. 基本含义和作用

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. HBase、HDFS与本地文件系统之间的关系

    一.文件系统 1. 概念 所谓文件系统,是操作系统用于明确磁盘或分区上的文件的方法和数据结构:即在磁盘上组织文件的方法.也指用于存储文件的磁盘或分区,或文件系统种类. 2. Local File Sy ...

  2. ubuntu配置ftp

    0.sudo apt-get install vsftpd 1.vi /etc/vsftpd.conf 将里面的注释打开 2.sudo service vsftpd restart 3.端口号21

  3. 数字图像处理实验(总计23个)汇总 标签: 图像处理MATLAB 2017-05-31 10:30 175人阅读 评论(0)

    以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...

  4. 关于神经网络中的padding

    参考:https://www.cnblogs.com/willnote/p/6746668.html

  5. 不使用库函数sqrt实现求一个数的平方根

    二分法: double mysqrt(double a) { ) ; , end = a; ) end = ; while(end - start > precision) { ; if( mi ...

  6. git 进阶操作

    1.blame git blame +文件名,可以查看到某个文件每一行最近一次是由谁编辑修改的.-L 22,33 选项可以制定 2.bisect 开始git bisect:   $ git bisec ...

  7. HttpUploader2-queue版本

    1.1 2016版本 目标: 1.大幅度优化JS代码,面向开发人员更加友好,逻辑清晰,代码简洁,便于阅读,定制开发,扩展,更加符合企业级应用需求. 2.大幅度使用并发技术来提高上传速度,与HttpUp ...

  8. Windows pip

    pip 最常用命令(go语言用go get) 显示版本和路径 pip --version 获取帮助 pip --help 升级 pip pip install -U pip 如果这个升级命令出现问题 ...

  9. 【Web学习笔记】浅析CGI概念及用法

    1. CGI是什么         CGI是Common Gateway Interface的简写,它提供了一种标准方法使得位于WebServer后端的web应用可以根据client的请求动态生成网页 ...

  10. android app启动就闪退怎么办?

    开发过程中,如遇到android app启动就闪退,不要急,直接进入调试模式运行app,就会取得出错的原因. http://blog.sina.com.cn/s/blog_44fa172f0102wg ...