在 Linux 下我经常会用到 chmod
命令来更改 *.sh
文件的权限,以便于获得可执行的权限, chmod
命令太长时间不使用很容易忘记,又得Google搜一下命令使用手册,现在干脆自己总结出来,本文只是 chmod
命令的一些基本使用,更复杂的使用,建议用命令手册去查看。
1. 文件权限简述
通过命令 ls -l fileNmae
查看文件(夹)信息,第一列就是文件权限信息,如下:
$ ls -l Linux-chmod命令.md
-rw-rw-r-- 1 zhanglei zhanglei 542 11月 27 15:52 Linux-chmod命令.md
Linux 的文件(夹)权限分成三段共10个字符表示,具体如下:
-
第一字符是
d
代表它是一个文件夹,如上示例的第一字符是-
代表它是一个文件; -
第二到第四位代表文件所有者对这个文件(夹)拥有的权限,如上示例的第二到第四位:
rw-
代表我对这个文件有可读可写的权限,但是没有可执行的权限,所以最后一位是-
;字母
r
代表可读,w
代表可写,x
代表可执行 -
第五位到第七位代表文件所有者所在用户组的用户对这个文件(夹)拥有的权限,权限同上;
-
第八位到第十位代表系统中非用户组的其他用户对这个文件(夹)拥有的权限,如上示例的第八位到第十位:
r--
代表其他用户对这个文件仅仅只是可读权限,没有可写可执行的权限,所以后两位是-
。
2. chmod 命令基本使用
上一节对文件权限做了简述, 有助于理解如何使用 chmod
命令, chmod
命令是需要root权限才能执行的,所以需要sudo或su,本文以Ubuntu环境下的使用为示例。
-
使用数字方式
我们实际使用
chmod
命令的时候,更多的是使用3位数字(如:755
)组成的权限,每一位数字分别代表:所有者的权限、所有者所在用户组的权限, 系统中非用户组的其他用户的权限;其中数字的取值代表这r、w、x的不同组合,计算方式如下:r = 4、 w = 2、 x = 1
所以代表 Linux 文件权限最大值是7,表示拥有可读可写可执行权限:
rwx = 4 + 2 + 1 = 7
;上一节中示例的文件权限rw-rw-r-- = 4+2+0 4+2+0 4+0+0 = 664
;示例:
#对test.md文件赋予权限 rwxrw-r-- sudo chmod 754 test.md
-
使用操作符方式
2个关键的操作符号:
+
表示增加权限,-
表示消减权限;四个关键的字母:字母 u 表示文件所有者,字母 g 表示用户所在的组, 字母 o 表示系统中非用户组的其他用户, 字母 a 表示所有用户;为了方便理解,这几个字母其实就是单词 user, group, other, all 的第一个字母。
示例:
#对所有者赋予该文件可执行权限: sudo chmod o+x test.md #对所有者所在用户组赋予该文件可修改的权限: sudo chmod g+w test.md #对系统中非用户组的其他用户去掉该文件的可修改的权限: sudo chmod o-w test.md #可以一次赋予多个: sudo chmod a+rwx test.md
-
更改整个文件夹及其下面所有文件的权限
上面介绍都是对单个文件的权限更改,如果要对一个文件夹及其下面所有文件都修改成统一的权限信息的话,可以在
chmod
命令后加上参数-R
, 比如:sudo chmod -R 754 test.md