LINUX--特殊权限SUID,SGID,Sticky

简介:

SUID:   运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者

SGID:   运行某程序时,相应进程的属组是程序文件自身的属组,而不说启动者的属组

Sticky:    在一个公共目录,每个人都可以创建文件,删除自己的文件,但不能删除别人 文件


什么意思?这些解释是不是云里雾绕的,还是用例子来解释吧,通俗易懂。


(一)

SUID:   比如,古代的时候,公主嫁给了平民,那么公主的很多权利就没有了,就不能像小时候那样随意的进宫玩耍了。怎么办?没关系,如果有了SUID之后,公主虽然嫁给了平民,但是她的权利不变,进宫或者行使其他的权利的时候,人们还是认她公主的身份,而不是她丈夫平民的身份。这就是SUID的作用。保持原来的身份不变。

          一个文件,权限默认是:

          -rwxr-xr-x   root root    /bin/cat

         (1) #   cat   /etc/gshadow     //用root用户查看/etc/gshadow可以查看!但是其他用户就没这么好的福气了。/etc/gshadow可不是那么好看的,只有管理员能查看。

  

          (2) $   cat  /etc/gshadow     //运行这个命令之后,肯定是拒绝,谁让你是普通用户呢。  


     但是,加上下面这条命令:

          (3) #  chmod u+s    /bin/cat               //意思是给cat这个命令加上SUID.

                    -rwsr-xr-x. 1 root root  /bin/cat   //rws,看见没有,变成小写s.如果原来就有执行权限,就是小写s,原来没有执行权限,会变成大写的S.

    然后:

          (4) $   cat   /etc/gshadow               //现在运行这个命令,就能查看了。因为虽然是普通用户进行查看的,但是因为cat这个命令加上了suid ,所以/etc/gshadow还是认为是root用户进行查看,所以就给看了。suid的作用是,不管是那个用户进行cat,cat在运行时都贴着它本来自己的标签--root属主和root属组。


(二)

SGID

比如,root 是皇帝,其他的3个普通用户是大臣是和珅,刘墉,纪晓岚。

     #   useradd   和珅             //和珅诞生了

     #    useradd 刘墉               //刘墉诞生了

     #    useradd  纪晓岚          //纪晓岚诞生了

     #   mkdir /tmp/朝廷                //朝廷是一个文件夹,请见谅。

     #   chmod g+w    /tmp/朝廷      //让/tmp/朝廷这个文件夹对组内成员有写的权限

    #    groupadd   一品大臣                     //建一个组,名字就叫一品大臣

   #   chown  -R   :一品大臣     /tmp/朝廷      //让/tmp/朝廷 这个文件夹的属组为一品大臣

   #  usermod -a -G  一品大臣   和珅         //把和珅加入一品大臣这个附加组,下面相同。

   #  usermod -a -G  一品大臣   刘墉

   #  usermod -a -G  一品大臣   纪晓岚


    现在,和珅写一个奏折,刘墉写一个奏折,纪晓岚写一个奏折,3个人写的奏折能互相浏览,更能互相更改,怎么实现,请看:

            a.   和珅写奏折

               $    cd /tmp/朝廷

               $    touch 和珅.txt

                -rw-rw-r--.   和珅   和珅        和珅.txt      //默认其他人有浏览的权限,属主和属组都是本人,因此默认他们只能浏览其他人的权限,不能更改其他人写的内容。

            b.   刘墉写奏折

                $    cd  /tmp/朝廷

                $    touch 刘墉.txt

                -rw-rw-r--.   刘墉    刘墉       刘墉.txt      //同上

            c.   纪晓岚写奏折

                $    cd /tmp/朝廷

                $    touch 纪晓岚.txt

                -rw-rw-r--.   纪晓岚   纪晓岚      纪晓岚.txt      //同上

  经过以上步骤,每个人都能在/tmp/朝廷里面创建文件夹,但是,不能修改其他人的文件夹,怎么办?
          答:

                #  chmod g+s   /tmp/朝廷                    //让朝廷这个文件夹有SGID的权限

然后,纪晓岚再创建一个文件夹:

       $    cd  /tmp/朝廷

        $  touch 纪晓岚02.txt  

     -rw-rw-r--.   纪晓岚   一品大臣       纪晓岚02.txt      //这个时候创建的文件夹默认属组是一品大臣。意味着只要是一品大臣这个组里面的人,比如和珅,不但可以修改纪晓岚的内容,而且还可以删除这个文件夹。纪晓岚要想不被别人删除他创建的东西,要做这一步:

           #    chmod o+t    /tmp/朝廷        //用root   执行这一步就行了。就不能随便删除别人的东西 了

    

            在上面的o+t  中,这个t指的就是sticky.


   -------------------------------------------------------------------------------------------------

附加小知识点:

     chmod 755   /tmp/1.txt     //意味着的权限是   rwx  r-x  r-x    ,分别是属主  读写执行,属组  读执行,  其他组的人  读执行。


    chmod 5755   /tmp/1.txt    //这个文件有SUID和Sticky!(数字中的第一个5,就是红色的5,表示有这个意思.)后面的755就是我们普通理解的--属主读写执行,属组读和执行,其他组的人读和执行。


  chmod 4755     /tmp/1.txt   //只有SUID,因此第一个数字是4.其他后面的755跟上面一样。

  chmod 2755    /tmp/1.txt     //只有SGID,因此第一个数字是2.其他后面的755跟上面一样。

  chmod 1755   /tmp/1.txt     //只有Sticky.




本文转自 曾国藩_6868 51CTO博客,原文链接:http://blog.51cto.com/8184069/1722516



相关文章
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
648 3
|
安全 Unix Linux
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
|
安全 Linux 数据安全/隐私保护
【Linux】深入理解linux权限
本文深入解析Linux权限管理机制,涵盖权限概念、用户角色、文件属性及操作方法。文章分为前言、权限介绍、用户与角色、文件属性、权限修改及常见问题六大板块。详细说明了权限类型(r/w/x)、角色优先级、chmod/chown指令用法,以及目录权限、umask掩码、粘滞位等重点内容。掌握这些知识,可有效提升Linux系统安全性和灵活性,是管理员必备技能。喜欢的话别忘了点赞支持哦! ❤❤❤
857 6
|
Linux 数据安全/隐私保护
|
9月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
986 1
二、Linux文本处理与文件操作核心命令
|
9月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
588 137
|
9月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1534 58
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
1086 143
linux命令—tree
|
8月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1388 2
|
9月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
756 16