文件系统的特殊权限

Linux文件系统上的特殊权限

  • 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
  • 决定命令有哪些操作取决于用户的权限大小,我们知道在Linux系统中常用的权限有三种 r,w,x 我们可以对user ,group,other这三种可以设定权限。
  • 我们除了r,w,x这三种权限也有三种特殊的文件权限分别是SUID,SGID,STICKY (粘滞位)

SUID

  • suid 只能对二进制可执行程序有效,在目录设置没有意义
  • 在常用命令中有一个修改用户密码的命令passwd 它就是一个有suid权限的命令
[root@centos7 ~]# ll `which passwd`
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
  • 我们知道修改用户密码需要改/etc/shadow ,但是普通用户是无法查看和修改、etc/shadow文件的 ,但是用passwd却可以间接修改,这是因为passwd文件上在所有者上有个S的权限
  • 当二进制程序有S权限时,用户使用这个二进制程序的时候会继承所有者的权限。
  • 当然如果把所有者上的执行权限去掉,那么S权限则显示错误,所以s权限时基于执行权限的
  • 由于这只能对二进制程序文件有效我们也可以在vim上加s,这样其它用户都可以编辑任何文件都是用所有者编辑的,危害很大要慎用。
如何添加权限
  • 普通加法 chmod u+s /file
  • 删除权限 chmod u-s /file
  • 数字加权 chmod 4777 /file
  • 删除权限 chmod 777 /file

SGIU

  • 作用在二进制程序上,执行sgid权限的程序时,此用户将继承此程序的所属组权限
  • 作用在目录上:在此目录新的文件的所属组,将自动继承目录的所属组
  • 默认情况下,用户创建文件时,其属组为此用户所属的 主 组一旦某目录被设定了SGID ,则对此 目录有写权限的用户在此
    目录中创建的文件所属的组为此目录的属组
  • 通常用于创建一个协作目录

  • 操作如何让其它用户创建的文件都变成目录的所属组

    • 我们在/app目录上操作,把/app 上的权限变成770 所有者和所属组有完全操作权限,其它人不能任何操作并且把所属组变成g1
    • [root@centos6 ~]# chmod 770 /app/
      [root@centos6 ~]# ll -d /app/
      drwxrwx---. 2 root g1 4096 Nov 18 06:32 /app/
    • 在吧两个用户加入到g1组里,guo和wang这两个用户加入进去
    • [root@centos6 ~]# groupmems -g g1 -l
      wang guo
    • 现在是没有在权限上加入sgid权限的,用两个用户分别新建文件看一下
    • [guo@centos6 /app]$ ll
      total 0
      -rw-rw-r--. 1 wang wang 0 Nov 18 06:55 1.txt
      -rw-rw--r--. 1 guo qwe 0 Nov 18 07:02 2.txt
    • 我们要让wang和guo创建的文件能让他们都能看对方的和修改,现在wang和guo都只能看不能修改。因为other权限没有写权限,最好的方法是让wang 和guo都属于一个组然后在修改所属组的权限,当然我们也可以在other上加上读写权限。如果创建一个文件就要改一下所属组很麻烦,我们只要在/app 目录上加入sgid 那/app 目录下其它用户创建的文件都会自动变成/app 目录的所属组。
    • [root@centos6 ~]# chmod g+s /app/
      [root@centos6 ~]# ll -d /app/

      drwxrws---. 2 root g1 4096 Nov 18 07:02 /app/
    • 我们在创建一下文件看一下
    • [wang@centos6 app]$ touch 1.1.txt
      [wang@centos6 app]$ ll
      total 0
      -rw-rw-r--. 1 wang g1 0 Nov 18 07:27 1.1.txt
      -rw-rw-r--. 1 wang wang 0 Nov 18 06:55 1.txt
      -rw-rw--r--. 1 guo g1 0 Nov 18 07:27 2.2.txt
      -rw-rw--r--. 1 guo qwe 0 Nov 18 07:02 2.txt
    • 这样/app 下创建的文件就会继承/app 目录的所组,我们也把wang和guo用户加入了g1 组.
如何添加权限
  • 加chmod g+s /file
  • 删除chmod g-s /file
  • 加chmod 2777 /file

STICKY (粘滞位)

  • 只能作用在目录
  • 具有sticky权限的目录,普通用户只能自已删除自已的文件
  • /tmp 目录就是
    [root@centos6 ~]# ll -d /tmp/
    drwxrwxrwt.36 root root 4096 Nov 18 06:31 /tmp/

如何添加权限
  • 加chmod o+t /file
  • 删除chmod o-t /file
  • 加chmod 1777 /file

我们发现所有特殊权限都是在X权限上遮盖x权限的位置,所以如果没有x权限是有问题的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章