引入
首先来看看常见的Linux系统文件权限:
644 rw-r--r--
700 rwx------
755 rwxr-xr-x
777 rwxrwxrwx
数字部分:从左至右,每1位代表这个后面3位字母的和
字母部分:从左至右,1-3位代表文件所有者的权限,4-6位代表同组用户的权限,7-9位代表其他用户的权限。
详解:
而具体的权限是由数字来表示的,
读取的权限等于4,用r表示;
写入的权限等于2,用w表示;
执行的权限等于1,用x表示;
通过4、2、1的组合,得到以下几种权限:
0(没有权限);
4(读取权限);
5(4+1 | 读取+执行);
6(4+2 | 读取+写入);
7(4+2+1 | 读取+写入+执行)
例子:
以755为例:
1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;
4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;
7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限。
Chmod命令使用:
语法为:chmod [-cfvR] [--help] [--version] mode file
参数说明:
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
file:文件
其他参数
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
例子:
将文件 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt
将 ex1.py 设定为只有该文件拥有者可以执行 :chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :chmod -R a+r *
此外chmod也可以用数字来表示权限如 :chmod 777 file