特殊权限 - SUID GUID STICKYBIT

◆ SUID ( Set User ID )

Linux里,用户的ID被称作UID。在实际生产中,可能需要临时借用别的用户执行程序,因此需要能够临时变更自己UID的机能叫做SUID。借助SUID权限,用户可以临时调用root权限。
※ 通常,文件的执行是由所属者发起,然而,赋予SUID权限后可临时继承所有者的权限(来执行文件)。通常用于二进制可执行文件上,文件夹赋予该权限无意义。

举个例子,假如我们要变更密码、需要编辑/etc/shadow文件,然而这个文件一般用户并没有修改权限。但由于更改密码的命令 passwd拥有SUID权限、一般用户就可以通过该命令来(继承root的权限进而)更改密码。同时我们也可以看到在ll命令下,拥有SUID权限的文件,执行权限的位置会由x变为s。

$ ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 Sat 07 2018 /usr/bin/passwd

从上面的命令中可以看到,所有者的权限显示为rws,其中,执行权变成了s。也就是说,有执行该命令权限的而用户可以临时继承所有者(root)的权限。

需要通过chmod来赋予(二进制可执行)文件SUID时,可通过添加数字“4000”来赋予权限。比如,原来的权限为755(rwx r-x r-x),赋予SUID权限后变成4755,即(rws r-x r-x)。若想用字母表示,则可用u+s来代替4755.

 ◆ 例子 : 给magedu.txt赋予「 rws r-x r-x 」权限

$ ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 Sat 07 2018 /usr/bin/passwd

◆ 或 : 把magedu.txt的权限由755变为4755 (SUID)

 $ chmod u+s magedu.txt

◆ SGID ( Set Group ID )

除了继承所有者权限的SUID、与之相对的还有继承组权限的SGID。默认情况下,用户创建文件(夹)时,其属组为此用户所属的主组。一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组。在生产生活当中,GUID权限通常用于创建协作目录。拥有SUID权限时,所有者的执行权限表现为s,而拥有GUID权限的情况下则是组权限中表达执行权限的x变为s。

通过chmod设置权限时,可以加算数字2000、或者使用文字g+s来赋予权限。

注:很少用来设置单个文件。

◆ 例子 : 把文件夹magedu 赋予「 rwx r-s r-x 」权限

 $ chmod 2755 magedu

◆ 或 : 用字母来添加GUID 权限

$ chmod g+s magedu

◆ 粘滞位(sticky bit)

被设置了粘滞位的文件夹,其中的文件及子目录原来具有的权限将无效化。只有所有者及root才能对文件进行修改或删除。当需要「使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下他人的文件」的时候,sticky位即可派上用场。比如系统中的 /tmp 目录就已经设定了粘滞位。 

$ ll -d /tmp

drwxrwxrwt. 10 root root 4096 Sat 06 16:25 /tmp

粘滞位在“其它用户权限”中的执行权上显示为t。用chmod赋予该权限时、可加算数字 1000 来设置。同时也可以用字母(o+t)来赋予权限。

◆ 例 : 给目录magedudir 赋予「 rwx rwx rwt 」权限

$ chmod 1755 magedudir

 ◆ 或 : 把目录magedudir 的权限由「755」变为「1755」

$ chmod o+t magedudir

◆ SUID、SGID、粘滞位的区别

◆ umask 命令(权限默认值)

文件或目录创建后都有其默认权限,而默认权限的设置与查看,由umask负责。
可以直接执行umask命令来查看umask的值。新建文件的默认权限则由数字666减去umask值,而新建目录的权限则由数字777减去umask的值。root用户的默认umask值为「0022」。则新建文件的权限为
666-022=644、新建目录的权限为 777-022=755。

※注:文件默认权限用666减去umask后可能会出现个位为奇数的情况,这样就会默认具有执行权限。为避免这种现象,系统会自行将奇数+1。例如:666-125=541(r-x rw- –x),所有奇数+1后,实际权限为642(rw- r– -w-)

 ◆ 例子 : 确认当前umask值

$ umask
0022

※ umask值可以由用户指定。

※    如需长期使用,umask设置需要写入配置文件。全局设置: /etc/bashrc 用户设置:~/.bashrc

◆ 例子 : 把umask值从0022变为0027

$ umask 0027

※ 变更umask值后新建文件的权限即为(-rw r– —)。

原文地址:https://www.cnblogs.com/jpinsz/p/10831577.html

时间: 2024-11-13 08:04:26

特殊权限 - SUID GUID STICKYBIT的相关文章

八、linux文件系统上的特殊权限 SUID 、GUID、Sticky

安全上下文 前提:进程有属主和属组,文件有属主和属组 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组 进程访问文件时的权限,取决于进程的发起者 进程的发起者,同文件属主,则应用文件属主权限 进程的发起者,属于文件的属组,则应用文件属组权限 应用文件“其它”权限  SUID 提权 打破了安全上下文规则 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的

linux系统的 suid/guid简单介绍

我们在前面曾经提到过s u i d和g u i d.这种权限位近年来成为一个棘手的问题.很多系统供应商不允许实现这一位,或者即使它被置位,也完全忽略它的存在,因为它会带来安全性风险.那么人们为何如此大惊小怪呢? s u i d意味着如果某个用户对属于自己的s h e l l脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限.于是,如果根用户的某一个脚本设置了这样的权限,那么其他普通用户在执行它的期间也同样具有根用户的权限.同样的原则也适用于g u i d,执行相应脚本的用户

【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

1.6 suid/guid

1.很系统供应商不允许使用这一命令,或者即使被置位,也会被忽略,这一命令会带来安全性风险. suid意味着该用户对自己的shell脚本设置了这种权限,那么其他用户执行该脚本时,也将拥有该用户相同的权限. 如果根用户设置了这样的权限,那么其他普通用户在执行这一脚本时,将有根用户的权限.同样的原则也适用于guid. 2. 为什么要用suid/guid 例子:比如我管理者几个大型的数据库,而对他们进行备份需要有管理员权限,我写了几个脚本,并设置了guid,这一我指定一些用户 可以执行这个脚本,只要他们

linux特殊权限SUID、SGID、SBIT

linux特殊权限SUID.SGID.SBIT 一.SUID 我们先来看一个文件,如下: [[email protected] ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd 可以看到/usr/bin/passwd这个文件状态是"-rwsr-xr-x",而不是我们平时所熟悉的"-rwxr-xr-x",那么当s出现在文件拥有者的x权限上时,此时就被称为SE

liunx命令3 attr、lsattr;特殊权限suid、sgid、sticky

attr文件隐藏属性 lsattr.chattr [[email protected] ~]# lsattr                         //查看当前目录特殊权限 -------------e- ./12.txt -------------e- ./222 -------------e- ./1112 [[email protected] ~]# chattr +a 1.txt                  //加a标记 [[email protected] ~]# ls

特殊权限SUID等详解

SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者 chmod u+s file chmod u-s file 如果file本身原来就有执行权限,则SUID显示为小s,否则显示大S SGID: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组 chmod g+s file chmod g-s file Sticky:在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件 chmod o+t dir chmod o-t dir 一般

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权限后,在该目录下创建文件目录时,创建后的属组为目