改变文件的用户组很简单,直接用chgrp即可,该命令是change group(改变用户组)的缩写。
注意,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。
假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?
假设已知道在 /etc/group里已经存在一个名为users的用户组,但是,testing这个用户组名字就不存在 /etc/group中了,此时改变用户组成为users与testing,会有什么现象发生呢?
[root@linux ~]# chgrp [-R] dirname/filename ...
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
例子:
chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~
发现了吗?文件的用户组被改成users了,但要改成testing的时候,就会发生错误。注意,出现错误信息,还是要查查错误信息的内容才好。
更改文件拥有者, chown
那么,如何改变一个文件的拥有者呢?很简单。既然改变用户组是change group,那么改变拥有者就是change owner(改变拥有者)。这就是chown这个命令的用途,要注意的是,用户必须是已经存在系统中的,也就是在 /etc/passwd这个文件中有记录的用户名称才可改变。
chown的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。我们来看看语法与范例:
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
例子:
知道了如何改变文件的用户组与拥有者,那么什么时候使用chown或chgrp呢?
有时需要更改文件的拥有者的,最常见的例子就是在复制文件给其他人时,使用最简单的cp来说明:
假设要将 .bashrc文件复制成为 .bashrc_test,且是要给bin这个人,可以这样:
如何处理?
.bashrc_test还是属于root所有,如此一来,即使将文件拿给bin用户了,它仍然无法修改(看属性就知道了),所以就必须修改这个文件的拥有者与用户组。