• SUID、SGID、Sticky BIT


    添加SUID

    chmod 4755 可执行文件名

    或 chmod u+s 可执行文件名

    删除SUID:

    chmod 755 可执行文件名

    或 chmod u-s 可执行文件名

    [root@localhost project]# ll
    总用量 0
    -rw-rw----+ 1 root root 0 8月   5 20:07 b
    [root@localhost project]# chmod u+s b
    [root@localhost project]# ll
    总用量 0
    -rwSrw----+ 1 root root 0 8月   5 20:07 b   注:大写S表示有问题,文件属主对文件无可执行权限。

     危险的SetUID:若给vim设置SUID权限,则所有普通用户可通过vim修改所有配置文件。


    SGID实例:

    [root@localhost ~]# ll /usr/bin/locate
    -rwx--s--x. 1 root slocate 40512 11月  5 2016 /usr/bin/locate
    [root@localhost ~]# ll /var/lib/mlocate/mlocate.db 
    -rw-r-----. 1 root slocate 834129 8月   5 10:06 /var/lib/mlocate/mlocate.db

     locate命令的执行过程是读取/var/lib/mlocate/mlocate.db文件,但普通用户对/var/lib/mlocate/mlocate.db无r权限,因为locate有SGID权限,所有普通用户在执行locate命令时会临时将自己所属组变为locate命令所有组,即slocate,而/var/lib/mlocate/mlocate.db文件的所有组也是slocate,所以普通用户执行locate时有权限读取/var/lib/mlocate/mlocate.db文件。

    添加SGID权限:

    chmod 2755 可执行文件名

    或 chmod g+s 可执行文件名

    对可执行文件属组必须要有执行权限才有效,不然SGID位会是大写S

    chmod 2755 目录

    或 chmod g+s 目录

    取消SGID权限:

    chmod 755 文件或目录

    chmod g-s 文件或目录

    演示SGID对目录的效果:

    [root@localhost ~]# mkdir /tmp/test
    [root@localhost ~]# ls /tmp
    test
    [root@localhost ~]# chmod g+s /tmp/test
    [root@localhost ~]# ll -d /tmp/test/
    drwxr-sr-x. 2 root root 6 8月   5 21:32 /tmp/test/
    [root@localhost ~]# chmod 2777 /tmp/test/
    [root@localhost ~]# ll /tmp/test -d
    drwxrwsrwx. 2 root root 6 8月   5 21:32 /tmp/test
    [root@localhost ~]# su - xiongjiawei
    上一次登录:六 8月  5 21:01:39 CST 2017pts/0 上
    [xiongjiawei@localhost ~]$ pwd
    /home/xiongjiawei
    [xiongjiawei@localhost ~]$ ls
    mytxt
    [xiongjiawei@localhost ~]$ touch aaa
    [xiongjiawei@localhost ~]$ ll
    总用量 4
    -rw-rw-r--. 1 xiongjiawei xiongjiawei   0 8月   5 21:39 aaa
    -rw-rw-r--. 1 xiongjiawei xiongjiawei 153 7月  23 20:25 mytxt
    [xiongjiawei@localhost ~]$ cd /tmp/test/
    [xiongjiawei@localhost test]$ ll
    总用量 0
    [xiongjiawei@localhost test]$ touch bbb
    [xiongjiawei@localhost test]$ ll
    总用量 0
    -rw-rw-r--. 1 xiongjiawei root 0 8月   5 21:39 bbb    注:此处即体现SGID的作用,普通用户对具有SGID权限目录有w权限时在此此目录下创建的文件属组非普通用户的属组,而是该目录的属组

     针对文件的SetGID类似SUID,轻易不要随便设置,会给系统增加风险!


    Sticky BIT

    作用:普通用户对目录具有w权限时可删除该目录下所有文件,如此目录权限有StickyBIT权限则普通用户只能删除自己创建的文件。

    [xiongjiawei@localhost test]$ ll -d /tmp
    drwxrwxrwt. 8 root root 105 8月   5 21:39 /tmp

    若一个目录对普通用户有w权限,则任用户可以删除此目录下文件,但若此目录有StickyBIT权限则普通用户只能删除自己创建的文件。

    添加StickyBIT权限:

    chmod 1755 目录

    chmod o+t 目录

    删除StickyBIT权限:

    chmod 755 目录

    chmod o-t 目录

    只能root添加删除粘着位权限。

  • 相关阅读:
    VC实现开机自启动
    用Shell扩展实现源代码统计程序
    在(CListView)列表视图中添加右键菜单的方法
    关于打开外部程序并且发送一个按键消息 (转
    vc中运行外部程序的方法
    如何在 XCode 4.2 設定部分程式碼不使用 ARC 方式分享(转)
    Xcode调试断点不停止解决方案!(转)
    NSString+NSMutableString+NSValue+NSAraay用法汇总 (转)
    对于Retain和Assign属性的理解(转)
    基于Xcode4开发第一个iPhone程序:“Hello World”(转)
  • 原文地址:https://www.cnblogs.com/xiongjiawei/p/7291393.html
Copyright © 2020-2023  润新知