访问权限
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