Linux文件系统的特殊权限有

  1. SUID:set  UID (ls l 显示的为s权限)

    功能有:

    SUID权限只对二进制程序有效

    执行者对于该程序需要具有可执行权限

    本权限仅在执行该程序的过程有效

    执行者将具有该程序拥有者的权限

    设置:

    Chmod   u+s   FILE…

    当一个文件拥有s权限,一般用户只要有执行这个文件的权限就会获得这个人家的属主权限

  2. SGID

    功能有:

    用户对此目录具有r与x的权限时,该用户能够进入此目录

    用户在此目录下的有效群组将会变成该目录的群组

    用户若在此目录具有w的权限,则使用者所建立的新档案的群组与此目录的群组相同

    设置:

    Chmod   g+s   FILE…

  3. Sticky bit:只针对目录有效(ls l 显示的为t权限)

    功能有:

    当用户对此目录具有w,x权限,即具有写入权限时

    当用户在该目录下建立档案或者目录时,仅有自己与root才有权力删除该档案

    设置:

    Chmod   1664   FILE…

当我们用umask查看遮罩码时是4位数字如0002,后三位分别表示(u、g、o),那么第一位则是表示SUID,SGID,SBIT的权限,这里SUID为4、SGID为2、SBIT为1,如3666,第一位3则表示拥有SGID(2)和SBIT(1)的权限。


例子:

  1. 让普通用户能使用/tmp/cat去查看/etc/shadow文件;


    切换至user1用户执行/tmp/cat命令:


  1. 创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;