注:转自http://yuanbin.blog.51cto.com/363003/114913,本人稍作修改。
Linux文件特殊权限主要体现在set UID、set GID、Sticky Bit这三个上面。
要理解这三个特殊权限,就要先理解账号的ID(UID和GID)以及进程等概念。
① SUID
SUID就是Set UID。设置它是为了让普通用户在执行某些程序时,能够暂时具有该程序的拥有者权限。
比如:在Linux系统中普通用户也可以使用passwd命令来修改自己的密码。但是密码文件shadow只有root用户有读和写权限,其他普通用户没有任何权限,那么普通用户是怎样通过passwd命令来修改自己的密码呢?我们看下/usr/bin/passwd程序的属性就知道了。
[root@localhost /]# list -l /usr/bin/passwd
-rwsr-xr-x 1 root root 22984 Jan 7 2007 /usr/bin/passwd
我们发现passwd程序user的x权限位变成了s。那么在这里就是这个s使普通用户有权限来执行这个程序。它让普通用户在执行passwd这个程序时暂时拥有了root的权限。
因此,当某程序user的x权限位变成s时,就是进行了Set UID设置,简称SUID。
SUID仅可用于二进制文件,对于其他普通文件,目录文件和脚本之类的文件是无效的。
② SGID
SGID就是Set GID,即s替换掉group的x权限。设置它用来作用于用户组。
如果将SGID设置在二进制文件上,则不论用户是谁,在执行该程序时,它的有效用户组将会变成改程序的用户组所有者;
如果将SGID设置在目录文件上,则在该目录文件内所建立的文件或目录的用户组,将会变成该目录的用户组。
SGID一般用于团队的项目开发上,在系统中很少使用。如果设置了SGID,那么该二进制文件或者目录group的x属性位将会变成s。
③ SBIT
SBIT就是Sticky Bit。如果在设置了SBit属性的目录中,用户在该目录下拥有w和x权限,那么当用户在该目录下新建文件时,只有文件拥有者和root才有权利删除。
比如:root在/目录下建立了一个文件夹test,test的权限是0777。在没有加特殊权限前,任何人都可以在test目录下做任何事,包括删除别人建立的文件。当我给test目录设置了SBit属性后,那么bobyuan这个用户在test下新建了一个文件bobtest, 属性是0777;bob这个用户进入test目录下试图删除bobtest,发现没有权限删除。
如果某个目录设置了SBit属性,那么该目录other的x属性位将会变成t。如【drwxrwxrwt】。
SBIT仅可用于目录文件,对于普通文件是不生效的。
如果某个文件的user或者group或者other没有设置x属性,但是设置了SUID或者SGID或者GBIT,那么,这些特殊属性将会以大写的S和T表现出来。
④ 设置SUID/SGID/SBIT
我们用数字形式来表示这三个特殊属性,他们和r/w/x的数字表现形式类似。
SUID:4
SGID:2
SBIT:1
比如我要设置cat命令的SUID属性,那就可以用chmod 4755来实现,也可以chmod u+s cat 来实现。
比如我要设置test目录的SBIT属性,那就可以用chmod 1777来实现,也可以chmod o+t test 来实现。
注意,在设置目录或者二进制文件的特殊属性时,一定要给予这些目录或者文件可执行权限。如果未给予可执行权限,即使设置了特殊属性,也将会是空的,会用大写的S和T表示。
分享到:
相关推荐
### Linux 文件特殊权限 SGID/SUID/Sticky Bit 详析 #### 一、引言 在 Linux 操作系统中,为了实现更为灵活和安全的权限管理机制,除了基本的读(r)、写(w)、执行(x)权限外,还引入了一些特殊的权限控制方式,包括 ...
"Linux 系统权限管理文件特殊权限学习教案" Linux 系统权限管理文件特殊权限是 Linux 操作系统中的一种重要机制,用于控制用户对文件和目录的访问权限。本学习教案将详细介绍 Linux 系统权限管理文件特殊权限的概念...
除了基本的读、写、执行权限外,Linux 文件系统还提供了 setuid、setgid 和 sticky bit 等特殊权限位,以满足更复杂的权限控制需求。 setuid 权限位是指在执行文件时,以文件所有者的权限执行该文件。典型的文件是 ...
在Linux操作系统中,权限管理是核心安全机制之一。...总结来说,Linux的权限系统通过用户、用户组、文件属性和特殊权限,以及进程ID来确保系统的安全性和灵活性。理解这些概念对于有效管理和维护Linux系统至关重要。
4. **设置文件为特殊权限SUID**: ``` chmod 4755 netlogin ``` 这里`4`表示SUID(Set User ID on execution),即当其他用户执行此文件时,其执行权限等同于文件所有者的权限。这对于需要提升权限运行的应用...
在这个"Linux系统权限管理文件特殊权限学习教案"中,主要介绍了Linux中的ACL(Access Control List)权限、文件特殊权限、文件系统属性chattr以及系统命令sudo的相关知识。 8.1 ACL权限:在传统的Linux文件权限系统...
在 Linux 中,还有三种特殊权限:SUID、SGID 和 Sticky Bit。 * SUID(Set User ID):如果设置了 SUID 的可执行文件被执行,文件将以所有者的身份来运行。 * SGID(Set Group ID):意思同 SUID,设置了 SGID 的可...
linux系统权限管理文件特殊权限PPT课件.pptx
linux系统权限管理文件特殊权限学习教案.pptx
综上所述,Linux文件系统的特殊权限机制是其安全特性的重要组成部分,有效地平衡了用户间的资源共享与数据保护。通过合理设置这些权限,系统管理员可以创建安全、有序的多用户环境,满足不同用户的需求,同时也降低...
本教程聚焦于Linux中的特殊权限,包括ACL(Access Control Lists)、文件特殊权限(如SetUID、SetGID和Sticky Bit)以及系统命令sudo的权限管理。 1. **SetUID**(设置用户ID) SetUID权限允许一个文件(通常是二...
Linux 文件权限详解 Linux 操作系统中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一...
总的来说,Linux的ACL权限提供了一种强大的工具,使得系统管理员能够更好地控制文件和目录的访问权限,满足复杂多变的权限管理需求。了解和掌握ACL的使用,对于维护安全、高效的Linux环境至关重要。
本文将深入解析Linux文件权限的核心知识点,包括基本的权限类型、特殊权限(如SUID、SGID和sticky bit)以及如何使用`chmod`命令来修改这些权限。 ### 基本权限类型 在Linux中,每个文件或目录都有三种基本的权限...
特殊权限位有SUID(Set User ID)、SGID(Set Group ID)和SBIT(Sticky Bit)。SUID当应用于可执行文件时,使得任何用户在执行该文件时获得文件所有者的权限;SGID使得执行该文件的用户获得文件所属用户组的权限;...
Linux是一种操作系统,其安全性是设计时的首要考虑之一...通过这个实验,学习者能够深入理解Linux文件权限管理的工作机制,以及如何在实际操作中合理地管理文件和目录权限,这对于维护Linux系统的安全和稳定至关重要。
这对于执行需要特殊权限的程序很有用,比如`passwd`命令。 - **sticky位**:在目录上设置的sticky位防止除了所有者之外的用户删除或重命名目录中的文件。这通常用于 `/tmp` 这样的公共目录,以保护用户的临时文件。...
每种文件类型(普通文件、目录和特殊文件)对于这三种权限的含义有所不同。例如,对于普通文件,“执行”权限意味着可以将该文件作为脚本执行;而对于目录来说,“执行”权限则意味着可以进入该目录。 #### 知识点...
总结来说,Linux文件系统是一个复杂而精细的设计,它结合了各种文件系统类型、虚拟文件系统抽象层以及如/proc这样的特殊文件系统,为用户提供了一致、高效的文件操作体验。通过学习Linux文件系统,我们可以更深入地...
Linux操作系统中,文件的权限和类型是文件系统管理的核心组成...总结来说,Linux文件系统通过类型和权限的管理,确保了数据的安全与系统运行的有序性。理解和掌握这些知识对于Linux系统管理员及用户来说是必不可少的。