特殊权限

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

  • 搜狗截图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

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班