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 .