用户的权限(下)特殊权限

本文详细解释了Linux中特殊权限SUID、SGID的作用,如何通过它们临时提升权限,以及SGID在目录授权中的应用。还介绍了文件属性chattr和umask对文件权限的影响,提醒用户安全使用这些技术。
摘要由CSDN通过智能技术生成
  • 特殊权限(了解)

    • 特殊位 suid

      • 高级权限的类型

        • suid

          • 针对文件/程序时,具备临时获得属主的权限。

          • 请思考

            • 问题1

              • 问题1: 下面的操作,为什么会失败! [root@localhost ~]# ll /root/file1.txt -rw-r--r-- 1 root root 4 7月 27 14:14 /root/file1.txt [root@localhost ~]#su - alice [alice@localhost ~]$ cat /root/file1.txt cat: /root/file1.txt: 权限不够 分析:root运行是超管的权限,普通用户运行时是普通用户的权限。 root /usr/bin/cat (root) /root/file1.txt OK alice /usr/bin/cat (alice) /root/file1.txt

          • 示例1

            • 设置suid,使普通用户通过suid临时提权,查看超管root用户的文件

            • 1.为cat程序添加上suid权限。

              • [root@localhost ~]# ll /usr/bin/cat -rwxr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat [root@localhost ~]# chmod u+s /usr/bin/cat [root@localhost ~]# ll /usr/bin/cat -rwsr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat 自习观察输出信息2(这两次有什么不同呢?)

            • 2.使用普通用户运行cat。暂时获得root权限

              • [root@localhost ~]# su - alice

              • [alice@localhost ~]$ cat /root/file1.txt

              • 结果,普通用户,看到了root的内容。这个行为很危险

              • 请在试验后,将cat的suid权限除去。

              • [root@localhost ~]# chmod u-s /usr/bin/cat

              • [root@localhost ~]# ll /usr/bin/cat

              • 自习观察输出信息3(请确认是否删除suid特殊权限)

        • sgid

          • 针对目录授权,可以使目录下新建文件,继承目录的属组权限。

          • 1.创建目录

            • mkdir /tmp/dir-sgid

            • ll -d /tmp/dir-sgid

          • 2.创建用户和组

            • groupadd xiaozu

            • useradd u1 -G xiaozu

            • useradd u2 -G xiaozu

          • 3.修改目录的权限

            • chown .xiaozu /tmp/dir-sgid

            • chmod g=rwx /tmp/dir-sgid

            • ll -d /tmp/dir-sgid

          • 4.切换用户测试

            • su - u1

            • touch /tmp/dir-sgid/u1-1.txt

            • su - u2

            • touch /tmp/dir-sgid/u2-1.txt

            • ll /tmp/dir-sgid

          • 5.增加sgid位

            • chmod g+s /tmp/dir-sgid/

            • ll -d /tmp/dir-sgid

          • 6.观察用户在新建文件时,文件会自动继承目录的属组

            • su - u1

            • touch /tmp/dir-sgid/u1-2.txt

            • touch /tmp/dir-sgid/u1-3.txt

            • ll /tmp/dir-sgid

        • stick

          • 针对目录设置,目录内的文件,仅属主能删除

          • chmod o+t /tmp/dir-sgid/

          • 切换用户,只能删除自己的文件。

    • 文件属性chattr

      • 用途

        • 常用于锁定某个文件,拒绝修改。

      • 分类

      • 案例

        • 1 先创建新文件进行对比。查看默认权限。

          • [root@localhost ~]# touch file100 [root@localhost ~]# lsattr file100 -------------- file100

        • 2 加上不能删除的属性。

          • [root@localhost ~]# chattr +i file100

            • 不能更改,重命名,删除

        • 3 查看不同属性

          • [root@localhost ~]# lsattr file100 ----i--------- file100

        • 4 尝试删除

          • [root@localhost ~]# rm -rf file100 rm: cannot remove `file100': Operation not permitted

        • 5 将属性还原。

          • [root@localhost ~]# chattr -i file100

      • 注意

        • 设置文件属性(特别权限),针对所有用户,root是否会收到影响呢?

    • 进程掩码 umask

      • 概述

        • 新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限

      • 示例1:观察系统默认掩码

        • 示例1: 在shell进程中创建文件,先查看当前用户的umask权限 [root@localhost ~]# umask 0022 [root@localhost ~]# touch file800 [root@localhost ~]# mkdir dir800 [root@localhost ~]# ll -d dir800 file800 drwxr-xr-x. 2 root root 4096 3月 11 19:40 dir800 -rw-r--r--. 1 root root 0 3月 11 19:40 file800

      • 示例2:老铁,双击666 修改shell umask值(临时)

        • 示例2:修改shell umask值(临时) [root@localhost ~]# umask 000 [root@localhost ~]# mkdir dir900 [root@localhost ~]# touch file900 [root@localhost ~]# ll -d dir900 file900 drwxrwxrwx. 2 root root 4096 3月 11 19:44 dir900 -rw-rw-rw-. 1 root root 0 3月 11 19:44 file900

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值