特殊权限

若是无缘再见,白堤柳帘垂泪好几遍;若是有缘再见,断桥残雪沉默了语言。

  • 搜狗截图20180415224343
  • SUID:需要作用在二进制可执行文件上才有意义,以往某用户在运行某个程序时比如cat,cat进程的权限会是启动用户的权限,这个进程的属主就是启动用户;而有SUID后的程序,用户在运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者。比如/usr/bin/passwd,每个用户都可以修改自己的密码,将密码写入shadow
  •  图片1
    • 设置SUID:chmod u+|- s FILE,如果FILE原本有x权限,则SUID显示为s,否则显示为S,本来SUID就是要作用在二进制文件上,如果是S就失去了意义
    • 例:cat有了SUID后,用其他用户来启动cat 就能访问shadow了
    • 图片1
  • SGID:当目录属组有写权限,且有SGID权限时,当有些用户的附加组也为该目录的属组时,他们以属组身份在此目录中新建文件或目录时,新文件的属组不是用户的基本组,而是此目录的属组,因此他们所创建的文件彼此都可以修改。如果直接上其他人有写权限也必然可以是他们可以彼此修改文件,但是这样做是非常危险的操作。而作为普通用户来讲,怎么将自己的文件共享给别人,让别人来写,普通用户又不能修改属主属组,只能修改权限,所以需要使用SGID机制
    • SGID:作用于二进制文件上,执行二进制文件的用户会继承二进制文件所属组的权限去访问文件;作用于目录,目录内新建文件的所属组自动继承目录的所属组
    • 设置SGID:chmod g+|- s DIRECTORY
    • 例:有一个开发团队develop team,团队里有三个人hadoop,hbase,hive,要求他们任意一人在/tmp/project里所创建的文件,其他的两个人都能编辑访问
    • 图片1
    • 已经在该目录中的用户,root在改了目录的写权限后,该用户依然不能在目录中创建文件,需要退出目录后重新进才能创建文件
    • 图片1
    • 注意:用户所创建的文件,文件的所属组是用户的基本组,但基本组未必有写权限
    • 图片1
    • 让其有SGID权限
    • 图片1
    • 再创建文件,文件不再以用户的基本组作为属组,而是以目录的属组作为属组
    • 图片1
    • 但是hadoop用户能删掉hbase用户的文件,为了避免这种情况发生就需要Sticky
    • 图片1
  • Sticky:用户在一个具有写权限的目录里,可以删除该目录中的任何文件,无论这些文件的权限位如何设置。Sticky的意义在于,若在一个公共目录上设置Sticky 位,每个人都可以创建文件,删除自己的文件,但不能删除别人的文件。sticky 设置在文件上无意义
    • 设置Sticky:chmod o+|- t DIRECTORY,如果是T表示Sticky位没有x权限失去意义
    • 图片1
    • 特殊权限位用数字表示:( SUID:4 SGID:2 Sticky:1 )
      • chmod 5755 /tmp/test :最前的数字5表示SUID+Sticky,然后这个目录的普通权限位是755

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96241

(0)
DPingDPing
上一篇 2018-04-15 22:39
下一篇 2018-04-16 08:53

相关推荐

  • Linux的发行版

    按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

    Linux笔记 2018-06-21
  • 正则表达式详细用法

    grep命令: 文本过滤(按行过滤) 参数                 -v 取反                 -i 忽略大小写                 -n 显示行号                 -c 统计匹配行数                 -q 静默执行(不显示执行结果)                 -o 仅显示搜索到的字符…

    Linux笔记 2018-04-08
  • 正则表达式用户管理

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod 700 /home/tuser1 -R [root@localhost ~…

    2018-06-04
  • 脚本练习——判断语句

    1、编写脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息 #!/bin/bash #判断参数是否是一个,否则退出 [ “$#” -ne 1 ] && echo “Please Input …

    Linux笔记 2018-05-04
  • Homework_week4

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。       cp -a /etc/skel /home/tuser1       chmod 700 /home/tuser1 2、编辑/etc/group文件,添加组hadoop。       echo “ha…

    Linux笔记 2018-06-27
  • LVS-NAT与LVS-DR模型实战

    LVS-NAT、LVS-DR实验

    2018-06-24