Linux chmod 命令的作用是设置 Linux 系统上的文件或者文件夹(以下对两者统称为档案)的权限,下面对该命令的一些详细用法做一下说明。
命令格式:chmod [-cfvR] [--help] [--version] mode file...
mode 设置权限的字符串,参数格式如下:
[ugoa...][[+-=][rwxX]...][,...]
其中 u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者都是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x(小写) 表示可执行,X(大写) 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c 若该档案权限确实已经更改,才显示其更改动作
-f 若该档案权限无法被更改也不要显示错误讯息。
-v 显示权限变更的详细资料
-R 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help 显示辅助说明信息
--version 显示版本信息
下面使用案例说明:
系统中存在这样一个文件:/home/www/exam.sh
(1)将以上文件设置为所有人都可读:
chmod ugo+r /home/www/exam.sh
或者:
chmod a+r /home/www/exam.sh
(2)将以上文件与 另外一文件 /home/www/test.sh 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w /home/www/exam.sh /home/www/test.sh
(3)将以上文件设定为只有该档案拥有者才可以执行:
chmod u+x /home/www/exam.sh
(4)将当前目录下的所有档案与子档案设置为可被任何人读取:
chmod -R a+r *
另外需要注意的是也可以用数字来表示相应的权限,语法格式为:chmod abc file
其中a,b,c各代表一个数字,分别表示 User、Group、及 Other 的权限。
r=4(读取),w=2(写入),x=1(执行)
若要 rwx 属性则为:4+2+1=7
若要 rw- 属性则为:4+2=6
若要 r-x 属性则为:4+1=5