文件的特殊权限,SUID、SGID、STICKY

安全上下文

当一个进程访问一个文件的匹配权限机制如下

进程访问文件时,首先检查进程的属主是否对该文件有访问权限,如果有则以属主的身份访问,否则使用属组的身份,如果还是没有权限则应用其它用户权限。

SUID:一般用于可执行文件

任何用户执行拥有SUID的可执行文件,不再以自己的身份来当作进程的属主,而是以文件的属主当作进程的属主。

suid表现为文件属主执行权限位上的s或S
           文件属主权限位有执行权限则表现为s       rws --- ---

文件属主权限位没有执行权限则表现为S     rwS --- ---

如何设定一个文件有SUID权限

chmod u+s  FILE ....

chmod 4775 FILE ..  \\ 这种方法,需要加上原来的权限才可以。

SGID:一般用于目录

拥有SGID权限的目录,用户在此目录下创建的文件将不再是用户的属所属的基本组,而是目录所属的基本组。

sgid表现为文件属组执行权限位上的s或S
            文件属组权限位有执行权限则表现为s  --- rws ---
            文件属组权限位没有执行权限则表现为S  --- rwS ---

如何设定一个目录有SGID权限

chmod g+s  DirName ...

chmod 2775  DirName ... \\ 这种方法,需要加上原来的权限才可以。

粘滞位:sticky

对于公共可写的目录,用户可创建文件,可以删除自己的文件,但无法删除别的用户的文件

sticky表示为文件其它用户执行权限位上的t或T:
            其它用户权限位有执行权限则表现为t  --- --- rwt   
            其它用户权限位有执行权限则表现为T  --- --- rwT

如何设定一个目录有sticky

chmod o+t DirName ...

chmod 1775  DirName ... \\ 这种方法,需要加上原来的权限才可以。

练习:

1、复制cat命令至/tmp目录,普通用户使用/tmp/cat命令能查看root用户有权限查看的所有文件;

# cp `which cat` /tmp
# chmod u+s /tmp/cat 
# ls -l
-rwsr-xr-x 1 root root 48568 Apr  2 19:53 cat

用普通份,运行/tmp/cat来查看/etc/passwd文件(该文件只有root用户才能访问)

$ /tmp/cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

2、新建/tmp/test目录:
          要求openstack和docker用户对其有写权限,且在目录创建的文件的属组都为cloud组;
          要求每个用户不能删除别人的文件,但可以编辑;

创建所需用户

# groupadd cloud
# useradd -G cloud openstack
# useradd -G cloud docke
# id docker
uid=1006(docker) gid=1007(docker) groups=1007(docker),1005(cloud)
# id openstack
uid=1007(openstack) gid=1008(openstack) groups=1008(openstack),1005(cloud)

创建所需目录

# mkdir /tmp/test
# chmod 775 /tmp/test

更改相应权限

# chown :cloud /tmp/test/
# chmod g+s /tmp/test
# chmod o+t /tmp/test
# ls -ld /tmp/test
drwxrwsr-t 2 root cloud 4096 Apr  2 20:02 /tmp/test

以openstack的身份在/tmp/test创建一个文件

$ whoami openstack
$ touch /tmp/test/openstack.txt
$ ls -l  /tmp/test/openstack.txt
-rw-rw-r-- 1 openstack cloud 0 Apr  2 20:18 openstack.txt

以docker的身份在/tmp/test创建一个文件

$ whoamidocker
$ touch /tmp/test/docker.txt
$ ls -l /tmp/test
-rw-rw-r-- 1 docker    cloud 0 Apr  2 20:20 docker.txt
-rw-rw-r-- 1 openstack cloud 0 Apr  2 20:18 openstack.txt

测试权限

$ rm /tmp/test/openstack.txt 
rm: cannot remove `/tmp/test/openstack.txt‘: Operation not permitted
$ echo "test" >> /tmp/test/openstack.txt
$ cat /tmp/test/openstack.txt
test

测试结果可以看出,只能修改对方的文件却不能删除

时间: 2024-10-14 01:00:37

文件的特殊权限,SUID、SGID、STICKY的相关文章

文件的特殊权限:suid sgid sticky

一.文件的特殊权限:suid    展示于文件属主的执行权限位:    如果属主本来有执行权限,则展示为s:否则,展示为S; 功用:对于一个可执行文件来讲,任何用户运行此程序为进程时,进程的属主不再是发起者本人,而可执行程序文件自己的属主: 管理文件SUID权限的方法:        chmod u+|-s FILE... [[email protected] ~]# useradd fedora [[email protected] ~]# cp /bin/cat /var/tmp/ [[em

Linux文件系统上的特殊权限      SUID, SGID, Sticky(粘之位)

每个人都有自己的梦想,我想把它写出来. Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位) 1 文件基本权限 r读, w写, x执行 user, group, other 2 安全上下文 前提:进程有属主和属组:文件有属主和属组: (1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限: (2) 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组: (3) 进程访问文件时的权限,取决于进程的发起者: (a) 进程的发起者,同

linux系统上的特殊权限SUID,SGID,STICKY

特殊权限:SUID SGID STICKY linux的安全上下文: 1.进程以用户的身份运行,进程是发起此用户的代理,因此以此用户的身份和权限完成所有的操作. 2.权限匹配模型: 1)判断进程的属主,是否以被访问的文件属主.如果是,则应用属主权限,否则进入第2步. 2)判断进程的属主,是否属于被访问的文件属组.如果是,则应用属组的权限,否则进入第3步. 3)应用other的权限. SUID: 默认情况下,用户发起的进程,进程的属主是其发起者,因此,其以发起者的身份在运行. SUID的功用:用户

文件特殊权限 SUID,SGID,Sticky 笔记

SUID : 运行某程序时 , 相应进程的属主是程序文件自身的属主,而不是启动者 chmod u+s FILENAME  (添加 SUID 权限)      chmod u-s FILENAME  (除去 SUID 权限) 如果 FILE 本身原来就有执行权限,则 SUID 显示为 s ; 否则显示 S; passwd 命令默认具有 SUID 权限 SGID : 运行某程序时 , 相应进程的属组是程序文件自身的属组,而不是启动者 (目录有SGID权限后,在该目录下创建文件目录时,创建后的属组为目

【Linux】文件特殊权限 SUID/SGID/Sticky Bit

linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限 [[email protected] ~]# ls -l /usr/bin/passwd /etc/passwd-rw-r--r-- 1 root root 1549 08-19 13:54 /etc/passwd-rwsr-xr-x 1 ro

特殊权限SUID,SGID,Sticky

SUID属性 SUID属性属性只能运用在可执行文件上,当其他用户执行该文件时,临时拥有该文件所有者的权限.典型的有passwd文件,因为SUID属性,所以一般用户在使用passwd修改命令时,临时拥有了passwd的拥有者root的权限.使用命令"ls -l "或"ll"查看文件时,如果如果可执行文件所有者权限的第三位是一个小写的"s"就表明该执行文件拥有SUID属性. [[email protected]~]# ls -l /etc/passw

Linux系统上的特殊权限SUID,SGID,STICKY以及额外权限管理工具facl命令

Linux系统上的特殊权限 特殊权限:SUID, SGID, STICKY 安全上下文: 1.进程以某用户的身份运行:进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作: 2.权限匹配模型: (1) 判断进程的属主,是否为被访问的文件属主:如果是,则应用属主的权限:否则进入第2步: (2) 判断进程的属主,是否属于被访问的文件属组:如果是,则应用属组的权限:否则进入第3步: (3) 应用other的权限: SUID: 默认情况下:用户发起的进程,进程的属主是其发起者:因此,其以发起

特殊权限-SUID,SGID,Sticky 学习笔记

SUID : 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者 chmod u+s FILENAME  (添加 SUID 权限)      chmod u-s FILENAME  (除去 SUID 权限) 如果 FILE 本身原来就有执行权限,则 SUID 显示为 s ; 否则显示 S; passwd 命令默认具有 SUID 权限 SGID : 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者 (目录有SGID权限后,在该目录下创建文件目录时,创建后的属组为目录自身的

linux的权限管理以及特殊权限SUID,SGID,Sticky

一切皆文件是linux重要的哲学思想之一,用户通过帐号密码登录系统以获得系统的使用权,在系统内部是通过UID来唯一标识一个用户,那么一个用户是否可以去访问或者使用某个文件资源,就取决于该用户是否有对应的权限. 在linux系统上,使用ls -l选项可以看见每一个文件的权限都分为三段,分别对应文件属主,属组,其它.权限位由r,w,x(读写执行)组成. 权限匹配流程:首先检查执行操作的用户是不是文件的属主,如果是,就应用文件属主 的权限.否则就检查用户是不是文件属组中的用户,最后就应用其它用户持用

特殊权限:SUID,SGID,Sticky

特殊权限passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者:    chmod u+s FILE    chmod u-s FILE        如果FILE本身原来就有执行权限,则SUID显示为s:否则显示S:SGID: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组:    chmod g+s FILE    chmod g-s FILE        develop team, hadoop, hbase, hive