setuid setgid stick bit 特殊权限 粘滞位

1、setuid与setgid讲解

看一下系统中用到它的地方,以/etc/passwd和/usr/bin/passwd为例:

分析一下,/etc/passwd的权限为 -rw-r--r-- 也就是说:该文件的所有者拥有读写的权限,而用户组成员和其它成员只有查看的权限。我们知道,在系统中我们要修改一个用户的密码,root用户和普通用户均可以用/usr/bin/passwd someuser这个命令来修改这个/etc/passwd这个文件,root用户本身拥有对/etc/passwd的写权限,无可厚非;那普通用户呢,这里就用到了setuid,setuid的作用是“让执行该命令的用户以该命令拥有者的权限去执行”,就是普通用户执行passwd时会拥有root的权限,这样就可以修改/etc/passwd这个文件了。它的标志为:s,会出现在x的地方,例:-rwsr-xr-x 。而setgid的意思和它是一样的,即让执行文件的用户以该文件所属组的权限去执行。

2、stick bit(粘滞位)

看一下系统中用到它的地方,以/tmp为例:

我们知道/tmp是系统的临时文件目录,所有的用户在该目录下拥有所有的权限,也就是说在该目录下可以任意创建、修改、删除文件,那如果用户A在该目录下创建了一个文件,用户B将该文件删除了,这种情况我们是不能允许的。为了达到该目的,就出现了stick bit(粘滞位)的概念。它是针对目录来说的,如果该目录设置了stick bit(粘滞位),则该目录下的文件除了该文件的创建者和root用户可以删除和修改/tmp目录下的stuff,别的用户均不能动别人的,这就是粘滞位的作用。

3、如何设置上述特殊权限

chmod u+s xxx # 设置setuid权限
chmod g+s xxx # 设置setgid权限
chmod o+t xxx # 设置stick bit权限,针对目录
chmod 4775 xxx # 设置setuid权限
chmod 2775 xxx # 设置setgid权限
chmod 1775 xxx # 设置stick bit权限,针对目录

4、注意:有时你设置了s或t 权限,你会发现它变成了S或T,这是因为在那个位置上你没有给它x(可执行)的权限,这样的话这样的设置是不会有效的,你可以先给它赋上x的权限,然后再给s或t 的权限。

原文地址:https://www.cnblogs.com/fanren224/p/8485275.html

时间: 2024-10-16 19:10:16

setuid setgid stick bit 特殊权限 粘滞位的相关文章

Linux 文件系统权限小结-基本权限-粘滞位-ACL

突然有人问道:drwxrwxrwx+后面的+号是干什么的,挺熟悉又想不起来,百度下后得到结果,最终总结一下Linux系统下关于文件权限的知识,在此记录下. 1.正常情况下,Linux文件系统中的文件权限为: drwxr-xr-x 2 root root 4096 5月  24 15:12 directory -rw-r--r-- 1 root root    0 5月  24 15:12 file.txt 十位第一位为文件属性,d为目录,-为普通文件,c表示为字符设备文件,b表示为块设备文件,s

【转】Linux中的特殊权限粘滞位(sticky bit)详解

在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问.最为我们熟知的一个文件或目录可能拥有三种权限,分别是读.写.和执行操作,在这里不做详细说明.我们创建一个文件后系统会默认地赋予所有者读和写权限.当然我们也可以自己修改它,添加自己需要的权限. 特殊权限 但是这三种权限就足够了吗?我们现在来说说在linux下的另一个特殊权限.首先我们来看看在根目录下的一个目录tmp,可以看到tmp目录的other权限是'rwt',那么这里的t又是什么权限呢,有什

linux下的粘滞位权限

1.为什么要有粘滞位? Linux中有一个存放临时文件的目录/tmp(类似于Windows中的temp目录),每个用户产生的临时文件都存放在此目录下,也就是说每个用户对/tmp目录都应该有写权限(否则无法拷贝生成文件),这样造成一个问题,比如,A同学在/tmp目录下创建了一个文件,B同学看着不爽就可以删掉,这如何控制?其实,这种情况永远都不会发生,因为/tmp目录有一个特殊的权限标记: 瞧见那个rwx权限最后的"t"了没,那个神奇的"t"就是粘着位t(有的资料中文也

五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX

五大权限:UGO权限.SetUID SetGID Sticky.ACL权限.chattr(文件系统级别的权限).SELINUX ======================文件属性以及ugo权限================================== ls -l 列出文件的属性 linux文件的类型包括以下六种: -  普通文件 d 目录文件 l  链接文件 b block类型的设备文件  块设备文件 c 字符型的设备文件 s socket文件 网络类型的文件 p 管道类型的文件 u

文件的三种特殊权限——suid、sgid和粘滞位(sticky)

文件的正常权限是首选对用户进行分组:文件属主,文件属组和其它.然后每组类用户对文件具有三种基本的权限:r,w,x.除了这些正常的权限设置,还可以设置三种特殊权限. 1. suid.任何用户执行设置有该权限的文件后,不再以用户自己的身份作为进程的属主,而是以该执行文件的属主作为进程的属主.这种权限的实质就是让执行该文件的用户,在进程运行过程中被授予文件属主的身份. 举例: -rwsr-xr-x. 1 root root 48568 Sep 10 14:24 /tmp/cat 任何用户运行cat时,

网络安全系列之四十一 在Linux中设置粘滞位sbit权限

通常情况下用户只要对某个目录具备w写入权限,便可以删除该目录中的任何文件,而不论这个文件的权限是什么. 比如我们进行下面的操作: #创建/test目录,并赋予777权限. [[email protected] ~]# mkdir /test [[email protected] ~]# chmod 777 /test #以root用户的身份在/test目录中创建文件file1,并查看其默认权限. [[email protected] ~]# touch /test/file1 [[email p

粘滞位

粘滞位,或粘着位,是Unix文件系统权限的一个旗标. 最常见的用法在目录上设置粘滞位,如此一来,只有目录文件的所有者或者root才可以删除或移动该文件.如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件. 实际应用中,粘滞位一般用于/tmp目录,防止普通用户删除或移动其他用户的文件. 在Linux系统中比较典型的例子就是"/tmp","/var/tmp"目录.这两个目录作为Linux系统的临时文件夹,权限为 即允许任意用户,任意程序在

粘滞位(sticky bit)

linux特殊权限:setUid, setGid, 粘着位(sticky) (1)目录的X权限(执行) 文件的可执行权限很简单,也就是可否执行它的意思,但目录的执行权限又代表什么意思呢? 当然不可能是要执行这个目录了,其实这个执行权限如果用在目录上时,它不再代表执行的意思了,而是代表"搜索"权限. 当你要访问/etc/httpd.conf文件时,你必须拥有对目录etc的X(即搜索)权限,否则即便你对目录/etc和文件httpd.conf拥有读取权限,也是无法访问httpd.conf这个

UID,GID,粘滞位,setattr,lsattr

我们有的时候有这样的需要,允许一人用户查看修改其它用户的文件,但不允许删除.用一个普通用户执行一个命令,但这个命令的运行身份是root.因为linux系统权限设置过于简单,像做这些事情就需要用到facl了.facl是file access control list的缩写. 当一个用户访问一个文件时,文件权限匹配模型是这样的工作顺序:检查用户是否为文件的属主,如果是则按属主的权限来看读写执行权限.如果不是则检查用户是否为此文件的所属组的成员,如果是则按属组的权限.如果不是则都其它用户权限来给定.