Linux 文件权限 强制位和冒险位详解

linux中,文件权限除了读、写、执行之外,还有强制位与冒险位的特别权限

在linux中文件的权限如下(在linux中目录也是一个文件):

强制/冒险  |  用户   |   组    |   其它
===========================================
  sst         rwx        rwx       rwx

这里就讲解一下强制位和冒险位

强制位有:setuid和setgid,主要用于文件及目录

冒险位有:sticky,只用于目录,多数是共享目录

setuid(在u的x位置上使用一个s)只能对文件进行设置

对文件作用:

默认情况下,用户执行一个指令,会以该用户的身份来运行进程。当一个文件设置了SUID后,所有用户执行这个文件时都是以这个用户的所有者的权限来执行。即可以让对此文件没有执行权限的用户执行此文件。

setgid(在g的x位置上使用一个s)只能对目录设置

对目录作用:

默认情况下,用户建立的文件夹属于用户当前所在的组,但是设置了SGID后,表示在此目录中,任何人建立的文件,都会属于目录所属的组,但是用户还是属于创建的用户。

sticky(o的x位置上使用一个t)只能对目录设置

对目录作用:

默认情况下,如果一个目录o上有w和x权限,则任何人可以在此目录中建立与删除文件。一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。其他用户则不能。

注意:直接在文件上面设置冒险位是没有作用的,冒险位要创建在目录上面

强制位和冒险位的表现方式:

强制位与冒险位添加在执行权限的位置上,强制位使用S和s来表示,冒险位使用T和t来表示。如果该位置上原已有执行权限,则强制位与冒险位以小写字母的方式表示。否则,以大写字母表示。即:

S:表示该位没有x位        s: 表示该位有x位

T:表示该位没有x位        t: 表示该位有x位

Ps:如果在强制位中S为大写,则表示相应的执行权限位并未被设置,这是一种没有用处的suid设置可以忽略它的存在。

设置强制位和冒险位

1:通过+,-设置强制位和冒险位

set uid: # chmod u+s filename

# chmod u-s filename          对文件取消强制位

set gid: # chmod g+s filename

sticky:  # chmod o+t dir

2:通过数字设置强制位和冒险位,放在读写执行的三位数字前来指定

4(set uid)   2(set gid)   1(sticky)

# chmod 4---       文件         设置setuid

# chmod 2---       目录         设置setgid

# chmod 1---       目录         设置sticky

# chmod 6---       目录/文件    设置GUID,UID

注意:chmod命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但并不会对所设置的权限组合做什么检查。因此一个文件具有执行权限不一定程序或脚本。

SUID例子:

默认情况下所有用户都可以使用ping此命令,但查看ping命令所在的文件时会发现,这个文件所属的用户和组均属于root,按理说只有root用户可以执行该命令,但事实上会发现所有的用户都可以使用该命令。因为ping命令所在文件的权限x的位置有一个s

# ping -c 4 www.doiido.com

如果去掉suid就会发现其他用户就使用不了改命令了

# chmod u-s /bin/ping

# su - doiido

$ ping -c 4 www.doiido.com

ping: icmp open socket: Operation not permitted

上面的例子中,指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。也说明了如果某个命令没有s权限则普通用户不可以使用

SGID例子:

一个小组共同开发一个项目,所有的项目文件都存放在一个目录下面,对这个目录设置SGID,可以让所有的用户新建的文件都属于同一个群组。然后对目录设置好权限,这样大家都可以看到其他用户建立的文件。

STICKY例子:

如一个小组共同开发一个项目,在一个目录上设了sticky位后,所有的小组成员都可以在这个目录下创建文件,但只能删除自己创建的文件(root除外),这就对目录下的用户文件启到了保护的作用。

其他:

查找suid文件

# ls -l | grep ‘^...s‘

查找suid 和guid document

# ls -l |grep ‘^...s..s‘

时间: 2024-11-04 06:20:35

Linux 文件权限 强制位和冒险位详解的相关文章

linux下强制位和冒险位介绍 SUID SGID STICKY

linux中,文件权限除了读.写.执行之外,还有强制位与冒险位的特别权限 在linux中文件的权限如下(在linux中目录也是一个文件):强制/冒险  |  用户   |   组    |   其它===========================================  sst         rwx        rwx       rwx 这里就讲解一下强制位和冒险位强制位有:setuid和setgid,主要用于文件及目录冒险位有:sticky,只用于目录,多数是共享目录 一

Linux目录结构的介绍以及强制位、冒险位

1.linux 目录结构 1) Linux系统的目录组成类拟一个倒置的树型结构,它以一个名为根("/")的目录开始向下延伸. 2) 它不同与其它操作系统.例如windows,在windows中,它有多少分区那么就有多少个根,而这些根之间是并列的,而在Linux中无论有多少个分区都有一个根. 3) 在Linux系统中对应的文件类型字符为"d". 在Linux的每一个目录中都存在下面这两个特殊目录 "."代表当前目录. ".."代

Linux 强制位、冒险位

强制位 suid 当某个用户对属于自己的shell设置了suid时,其他用户在执行这个shell脚本时会暂时拥有脚本拥有者的权限,当执行完脚本后权限会回收. SUID的作用就是:让本来没有相应权限的用户运行这个程序时,可以访问没有权限访问的资源. 普通用户无法查看secure日志 当root使用chmod u+s /usr/bin/tail 为tail命令设置强制位时,普通用户可以执行tail命令查看本来没有权限查看的文件. 强制位 sgid 对文件的控制是,以文件所属组的身份运行: 对文件夹来

Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个

Linux文件权限表示

属主,属组,其他用户 Linux下一个文件的权限包含属主.群组和其他人的权限,并且各个用户对该文件具有单独设置的权限,这是 Linux 权限模型的核心. 那么什么是属主,属组,其他用户呢? 属主: 属主即一个文件的拥有者,一般为这个文件的创建者 属组: Linux下的每个用户都会属于一个组别.那么这个组别就叫做属组 其他用户: 其他用户即为属主和属主所在属组以外的所有人, 例如:有个用户A,用户名是 A,他的属组名称也是 A ,还有一个用户B,用户名是B 他的属组名称也是B 这个时候用户A 创建

修改linux文件权限命令

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

Linux文件权限详解

在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限

修改linux文件权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

修改linux文件权限命令:chmod

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者