三个权限对应的数字为r:4,w:2,x:1,三类用户的权限分别就是这三个数字的和,比如说上面的那个例子“ -rw-rw-r-- ”化为数字即是:664,要给三个用户都加上执行权限的话,就用“chmod 775 hello.c”
(2)符号法:
chmod u/g/o/a +/-/= r/w/x filename
以上“u”表示user,“g”表示group,“o”表示others,“a”表示all
“+”表示增加权限,“-”表示去除权限,“=”表示设置权限为
“rwx”当然就是文件的三个权限,可以只写一个,也可以写多个
依旧是上面的那个例子,给hello.c所有用户加上执行权限,那么命令就是“chmod a+x hello.c”
ps:以上命令可以加上“-R”参数来进行递归变更
2.4 文件的默认权限:umask以上已经说明了关于文件权限的基本知识,那么当我们新建一个文件的时候,权限是怎样的呢?这就涉及到文件的默认权限:umask。在终端下输入umask,会得到一串数字,像在我的机器上是“0002”,后三个数字即是文件的默认权限,不过要注意的是,这是文件默认不具有的权限。亦即“002”代表others不具有w权限。还需要注意的是对于文件和目录这里仍是不同的。文件默认不具有x权限,即最大权限为“-rw-rw-rw-”,而目录访问需要x权限,因此默认最大权限为“-rwxrwxrwx”。所以在我的机器上umask为“002”,分别创建一个文件和一个目录后,结果如下:
drwxrwxr-x. 2 jerry jerry 4096 8月 31 11:30 new
-rw-rw-r--. 1 jerry jerry 6 8月 31 11:29 new.txt
若要设置umask,直接在后面加上设置的数字即可,比如“umask 022”
ps:umask加上“-S(大写)”参数可以直接显示文件权限,不过不区分文件与目录,如我的机子上就显示“u=rwx,g=rwx,o=rx”,仍需留意文件默认没有x权限。