Linux特殊文件权限

运维 系统运维
一般来说,使用过Linux的同学都知道,Linux文件的权限有rwx,所有者、所有组、其它用户的rwx权限是彼此独立的。为此,经常会听到如果某个web文件需要被修改的话,需要加上777的权限,这就是让所有用户可写。

一般来说,使用过Linux的同学都知道,Linux文件的权限有rwx,所有者、所有组、其它用户的rwx权限是彼此独立的。为此,经常会听到如果某个web文件需要被修改的话,需要加上777的权限,这就是让所有用户可写。

但仔细一想,这样的权限未免有些想得比较天真,没有考滤特殊情况。例如/tmp目录默认权限是777,而且有些文件也是允许所有用户访问修改的,那么是不是任何一个用户都可以将这些删除呢?再如/etc/shadow保存的是用户密码文件,默认情况下它的权限是640,那么只有shadow的owner(root)才能修改它,按照常规理解,这是不可理解的,因为每个用户都可能修改密码,也就是会修改这个文件。

为了把这些情况解释清楚,需要引入Linux特殊文件权限的概念。Linux特殊文件权限有三个玩意:sticky bit、SGID、SUID,以下一一道来。

sticky bit

sticky bit只对目录有效,使目录下的文件,只有文件拥有者才能删除(如果他不属于owner,仅属于group或者other,就算他有w权限,也不能删除文件)。

加sticky bit的方法:

chmod o+t /tmp或者

chmod 1777 /tmp

查看是否加了sticky bit,用ls -l,可以看到有类似这样的权限:“-rwxrwxrwt”,t就代表已经加上了sticky bit,而且生效了,如果显示的是“-rwxrwxrwT”,说明也已经加上了sticky bit,但没有生效(因为本来other就没有写的权限)。

看看/tmp目录的权限,就是drwxrwxrwt吧

SGID(The Set GroupID )

加上SGID的文件,表示运行这个程序时,是临时以这个文件的拥有组的身份运行的;加上SGID的文件夹,表示在这个目录下创建的文件属于目录所有的组,而不是创建人所在的组,在这个目录下创建的目录继承本目录的SGID。

加SGID的方法:

chmod g+s /tmp或

chmod 2777 /tmp

查看是否加了SGID,用ls -l,可以看到类似这样的权限“drwxrwsrwx”,s就代表已经加上了SGID,而且生效,如果显示“drwxrwSrwx”,说明已经加上了SGID,但没有生效(因为本来group就没有执行的权限)。

SUID(The Set UserID)

SUID与SGID是一样的,惟一不同的是,运行时是以这个文件的拥有者身份来运行。

加SUID的方法:

chmod o+s /tmp或

chmod 4777 /tmp

同样的,加了SUID的文件权限有这类似这两种:“drwsrwxrwx”、“drwSrwxrwx”。

看看passwd命令的权限:ll /usr/bin/passwd,是"-rwsr-x-rx",终于知道为什么执行passwd时,可以修改/etc/shadow文件了吧。

【编辑推荐】

  1. 解读Linux系统文件权限的设置方法
  2. Linux文件权限隐藏的细节深入分析
  3. 系统安全解读Linux文件权限设置方法
责任编辑:赵宁宁 来源: chinaitlab
相关推荐

2013-04-25 10:30:03

Linux系统文件权限

2019-11-21 14:56:40

特殊文件Linux开发

2010-03-09 13:10:08

Linux特殊用户权限

2010-04-23 14:01:41

特殊访问权限

2016-08-24 10:11:00

Linux文件权限

2010-03-10 16:59:59

Linux数字文件权限

2009-09-23 10:19:05

UnixLinux安全

2023-02-16 08:34:01

2009-09-11 08:41:59

Linux文件系统ACLs权限控制

2022-08-14 19:27:16

LinuxmacOS

2009-12-03 10:18:32

Linux文件夹执行权限

2023-06-25 12:10:34

Linux文件权限

2009-04-15 20:32:39

Linux工作目录用户主目录

2011-01-07 09:19:35

Linux文件权限

2010-03-05 16:54:47

2018-02-23 09:47:48

LinuxUbuntu特殊权限

2014-08-01 17:12:14

Linux特殊符号

2020-12-04 08:32:12

Linux特殊名字

2014-02-12 10:58:05

Linux文件夹文件权限

2022-11-03 15:14:43

Linux文件权限
点赞
收藏

51CTO技术栈公众号