摘自鸟哥书中:

数字类型改变档案权限


Linux 档案的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的
read/write/execute 权限, 先复习一下刚刚上面提到的数据:档案的权限字符为:『 -
rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各
权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-
rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该档案的权限数字就是 770 啦!变更权限的指令 chmod 的
语法是这样的:

 

丼例来说,如果要将.bashrc 这个档案所有的权限都设定启用,那举就下达:

那如果要将权限变成『-rwxr-xr-- 』呢?那举权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754 啰!所以你需要下达『chmod 754 filename』。 另外,在实 际的系统运作中最常发生的一个问题就是,常常我们以 vim 编辑一个 shell 的文字批处理文件 后,他的权限通常是 -rw-rw-r-- 也就是 664, 如果要将该档案变成可执行文件,并丏丌要让其 他人修改此一档案的话, 那举就需要-rwxr-xr-x 这样的权限,此时就得要下达:『chmod 755 test.sh 』的挃令啰! 另外,如果有些档案你不希服被其他人看到,那举应该将档案的权限设定为例如:『 -rwxr----- 』,那就下达『chmod 740 filename 』吧!

符号类型改变档案权限
还有一个改变权限的方法呦!从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user (2)group (3)others 三种身份啦!那举我们就可以藉由 u, g, o 来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那举读写的权限就可以写成 r, w, x 啰!也就是可以使用底下的方 式来看:


来实作一下吧!假如我们要『设定』一个档案的权限成为『 -rwxr-xr-x』时,基本上就是:

o user (u):具有可读、可写、可执行的权限;
o group 不 others (g/o):具有可读不执行的权限。 所以就是:

那举假如是『-rwxr-xr-- 』这样的权限呢?可以使用『chmod u=rwx,g=rx,o=r filename 』 来设定。此外,如果我不知道原先的文件属怅,而我只想要增加.bashrc 这个档案的每个人均可 写入的权限, 那举我就可以使用:

而如果是要将权限去掉而不更改其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

知道 +, -, = 的不同点了吗?对啦! + 不 – 的状态下,只要是没有指定到的顷目,则该权限『不会被变劢』, 例如上面的例子中,由于仅以 – 拿掉 x 则其他两个保持当时的值不变!多多实作 一下,你就会知道如何改变权限啰! 这在某些情况底下很好用的~举例来说,你想要教一个朊 友如何让一个程序可以拥有执行的权限, 但你又丌知道该档案原本的权限为何,此时,利用 『 chmod a+x filename』 ,就可以让该程序拥有执行的权限了。是否很方便?