Linux特殊文件权限(chmod) chmod2777

一般来说,使用过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文件了吧

 

  SUID:置于 u 的 x 位,原位置有执行权限,就置为 s,没有了为 S .
  SGID:置于 g 的 x 位,原位置有执行权限,就置为 s,没有了为 S .
  STICKY:粘滞位,置于 o 的 x 位,原位置有执行权限,就置为 t ,否则为T .

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Linux系统中,使用chmod命令来改变文件的权限。该命令能够通过设置不同的权限来决定哪些用户可以对文件进行读、写和执行操作。 chmod命令的基本用法是:chmod [权限模式] [文件名] 权限模式可以通过数字或字母两种方式来表示。数字方式中,权限由三个数字组成,分别代表文件的所有者、所属组和其他用户的权限;每个数字由三位二进制数构成,分别代表读、写和执行的权限,若具有则为1,无则为0。例如,chmod 755 file.txt 将文件file.txt的权限设置为-rwxr-xr-x,表示文件所有者具有读、写和执行权限,所属组和其他用户具有读和执行权限。 字母方式中,权限有三个字母表示,分别是u(所有者)、g(所属组)和o(其他用户),另外还有一个字母a(所有用户)表示。每个字母可与r(读)、w(写)和x(执行)组合来设置不同的权限。例如,chmod u=rw file.txt 将文件file.txt的权限设置为-rw-r--r--,表示文件所有者具有读和写权限,所属组和其他用户仅具有读权限。 此外,我们还可以使用+和-符号来增加或取消权限。例如,chmod +x file.txt 将添加执行权限,chmod -r file.txt 将取消读权限。 需要注意的是,只有文件的所有者和root用户才有权改变文件的权限。在改变权限之前,我们可以使用ls -l命令来查看文件的当前权限。改变权限时,需要谨慎操作,以避免对系统和文件的安全性产生负面影响。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值