常用于群组、拥有者、各种身份的权限之修改的指令,如下所示:
改变一个文件的群组很简单,直接chgrp来改变,指令就是change group。要被改变的群组名称必须要在/etc/group文件内存在才行,否则就会显示错误。
假设你已经是root的身份了,那么在你的主文件夹内有一个名为 initial-setup-ks.cfg 的文件,如何将该文件的群组改变一下呢?假设你已经知道在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中了,此时改变群组成为users与testing分别会有什么现象发生呢?
文件的群组被改成users了,但是要改成testing的时候, 就会发生错误。发生错误讯息还是要努力的查一查错误讯息的内容才好! 将他英文翻译成为中文,就知道问题出在哪里了。
改变文件拥有者, chown
如何改变一个文件的拥有者呢?改变群组是change group,那么改变拥有者就是change owner,这就是chown这个指令的用途,要注意的是, 使用者必须是已经存在系统中的帐号,也就是在/etc/passwd 这个文件中有纪录的使用者名称才能改变。
chown的用途还满多的,他还可以顺便直接修改群组的名称呢!此外,如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!我们来看看语法与范例:
复制文件给其他人,使用最简单的cp指令来说明:
如果要将.bashrc这个文件拷贝成为.bashrc_test文件名,且是要给bin这个人,你可以这样做:
由于复制(cp)会复制执行者的属性与权限,所以,.bashrc_test还是属于root所拥有,因此即使将文件拿给bin这个使用者,仍然无法修改,所以就必须要将这个文件的拥有者与群组修改一下。
改变权限,chmod
文件权限的改变使用的是chmod这个指令,但是,权限的设置方法有两种, 分别可以使用数字或者是符号来进行权限的变更。
数字类型改变文件权限
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 755test.sh ”的指令。
另外,如果有些文件你不希望被其他人看到,那么应该将文件的权限设置为例如:“-rwxr-----”,那就下达“ chmod 740 filename ”。
符号类型改变文件权限:
九个权限分别是(1)user (2)group (3)others三种身份。可以借由u, g, o来代表三种身份的权限。a 则代表 all 亦即全部的身份,那么读写的权限就可以写成r, w, x。也就是可以使用下面的方式来看:
假如我们要“设置”一个文件的权限成为“-rwxr-xr-x”时,基本上就是:
user (u):具有可读、可写、可执行的权限;
group 与 others (g/o):具有可读与执行的权限。 所以就是:
如果是“-rwxr-xr--",可以使用“ chmod u=rwx,g=rx,o=r filename ”来设置。此外,如果我不知道原先的文件属性,而我只想要增加.bashrc这个文件的每个人均可写入的权限, 那么我就可以使用:
而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:s