【转】chmod 设置目录或文件的访问权限

时间:2021-01-07 16:46:12

访问权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。

在Linux中是按着用户和组来设定权限的。

  • 所有者权限:就是文件或者目录的创建者。一般来说所有者的权限与root用户权限相当。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。
  • 同组权限:就是所有者所在的用户组的其他成员的权限。
  • 其他用户权限:除去所有者以及其所在组之外,其他用户和组登录这个系统后,对该文件或者目录的权限。

访问权限分为三种:

  • r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
  • w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
  • x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

每一文件或目录的访问权限都有三组,每组用三位表示:所有者的读、写和执行权限同组的用户的读、写和执行权限系统中其他用户的读、写和执行权限

当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:
$ ls -l sobsrc. tgz
-rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
r代表只读,w代表写,x代表可执行,-代表空许可。
注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。

- rw- r-- r--
非目录的文件 所有者权限 组用户 其他用户
普通文件 有读写权限 只有读权限 只有读权限

linux中的文件、目录权限区别如下:

  文件 目录
r:可读权限 读取文件内容 读包含在目录中的文件名称
w:可写权限 对文件内容进行编辑 可以写信息到目录中,即可以创建、删除文件、移动文件等操作
x:可执行权限 作为执行文件执行 可以进入目录;可以搜索(能用该目录名称作为路径名去访问它所包含的文件和子目录)

举例说明:

1. 对文件有w权限不能删除文件,需要对文件所在的目录有w权限;

2. 对目录有w权限不能cd进入目录,需要对目录有x权限;

3. 对目录有x权限,只有在知道文件名并且有r权限的时候才能访问目录下的文件;

4. 对目录必须有x权限才能cd进入到目录,必须有rx权限才能使用ls列出目录清单;

5. 对目录有w权限,可以对目录中的任何文件或子目录进行创建、删除或修改操作,即使该文件或目录的所有者是其它用户也是如此;

chmod 命令

chmod 命令用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

1. 文字设定法

语法:chmod [选项] [操作对象] [操作符] [权限] 文件名

选项
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

操作对象,可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。

操作符号
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。

权限。可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。

将档案 file1.txt 设为所有人皆可读取:chmod ugo+r file1.txt chmod a+r file1.txt 

将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:chmod ug+w,o-w file1.txt file2.txt 

将ex1.py 设定为只有该档案拥有者可以执行: chmod u+x ex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取: chmod -R a+r *

2. 数字设定法

语法:chmod abc 文件名

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r为4,w为2,x为1,-为0
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。

文件mm.txt的属性为:-rw-r--r--文件属主(u)拥有读、写权限:6与文件属主同组人用户(g)拥有读权限:4其他人(o)拥有读权限:4  chmod 644 mm.txt 即设定wchtxt这个文件的熟悉为:-rwxr---文件主人(u)inin可读/可写/可执行:7与文件主同组人(g)可读/可执行权:5其他人(o)没有任何权限:0

 chmod 750 wch.txt