当前位置:首页>真相 > 9linux下修改文件及文件夹权限命令

9linux下修改文件及文件夹权限命令

9linux下修改文件及文件夹权限命令

本文核心词:

Chmod命令主要用于修改、设置文件权限

chmod 修改文件权限主要有两种方式: 字母法与数字法

虽然数字法相对字母法简单,但是数字法是基于字母法,所以这里先介绍字母法。

1、字母法:chmod(u g o a)(+ - =)(r w x)(文件名)

以上是chmod的用法,每个括号是一个参数, 前三个括号主要放在一起使用即 chmod + 设置模式 + 文件名;下面先介绍这些参数的意义:

u g o a含义

+ - =含义

r w x含义

用法:chmod + 设置模式 + 文件名

中间的设置模式,要分别对u(user), g(group), o(other)设置权限。

chmod u+rwx, g+rwx, o+rwx filename 改命令说明对filename文件, 赋予user、group、other均有read、write、excute的权限

chmod u+rw filename说明对于filname, 只赋予user用户, read、write权限

chmod u+rwx, g+rwfilename说明对filename,赋予user用户read、write、excute权限;赋予group用户read、write权限

所以设置模式中应该包含对三种用户类型的权限设置,各自独立,互不影响。

注意:(chmod + 设置模式 + 文件名)设置模式中包含对三种类型用户(u、g、o)的权限设置,这三者各自独立,互不干扰。

补充:文件详细信息中第一个字母的含义

2、数字法

数字法是基于字母法的表示,如果字母法懂了,数字法就好懂,并且易于使用。

用法:chmod + 数字组合 + 文件名

数字组合一般包含三个数字:

第一个数字对应字母法的用户u(user)

第二个数字对应字母法的用户g(group)

第三个数字对应字母法的用户o(other)

另外:

r(read)----------------4

w (write)----------------2

x (excute)----------------1

示例详解:

数字法:chmod777文件名-----------对应--------------字母法: chmod u+rwx, g+rwx, o+rwx文件名

第一个数字7:代表用户 u 的权限 rwx, 4 (r) + 2 (w) + 1 (x) =7

第二个数字7:代表用户 g 的权限 rwx,4 (r) + 2 (w) + 1 (x) =7

第三个数字7:代表用户 o 的权限 rwx,4 (r) + 2 (w) + 1 (x) =7

举例说明:

数字法:chmod755 filename对应字母法: chmod u+rwx, g+rx, o+rx filename

数字法:chmod751 filename对应字母法: chmod u+rwx, g+rx, o+xfilename

数字法:chmod765 filename对应字母法: chmod u+rwx, g+rw, o+rx filename

chmod 数字法另一种解释:

刚才上面的解释是基于求和的方法,下面用二进制的方法进行解释数字法表示:

rwx 权限用用三位二进制数字表示:

第一位数字(0或1)表示 r, 为1表示有效, 0无效

第二位数字 (0或1) 表示 w, 为1表示有效,0无效

第三位数字 (0或1) 表示 x, 为1表示有效, 0无效

000---------------------无任何权限

100---------------------r(read)----- 4

010---------------------w(write)----- 2

001 ----------------------x(excute)----1

101 ----------------------rx----5

110 ----------------------rw----6

111 ----------------------rwx----- 7

3、另外三个设置权限

如 chmod 2777中的第一个数字2就是设置除以上三类权限的另外权限。

分别是sticky bit、SGID、SUID,这三个权限用字母表为t,s,s。它们设置成功后分别对应在其它用户权限的第三位,用户级权限的第三位,和用户权限的第三位。也就是说它们占用了x的位置。

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 .