一、基础知识
在linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户,该文件用户可以修改该文件的拥有者及用户组,当然root用户可以修改任何文件的拥有者及用户组。在Linux中,对于文件的权限(rwx),分为三部分,一部分是该文件的拥有者所拥有的权限,一部分是该文件所在用户组的用户所拥有的权限,另一部分是其他用户所拥有的权限。对于文件的权限请参考《Linux的chmod命令》
文件(含目录,下同)的权限,在shell中可以通过chmod命令来完成,关于此请参考《Linux的chmod命令》.在shell中,可以使用chown命令来改变文件的所有者及用户组,chgrp命令来改变文件所在用户组.在Linux的C程序中,可以使用chown函数来改变文件所有者以及用户组.
另外,在shell中,要修改文件当前的用户必须具有管理员的root权限.可以通过su命令切换到root用户,也可以通过sudo来获得root的权限.
二、使用chown命令修改文件拥有者
在 shell 中,可以使用chown命令来改变文件所有者。chown命令是change owner(改变拥有者)的缩写。需要要注意的是,用户必须是已经存在系统中的,也就是只能改变为在 /etc/passwd这个文件中有记录的用户名称才可以。
chown命令
的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上
-R
的参数即可。
语法:
chown [-R] 拥有者名称 文件名
chown [-R] 拥有者名称:
用户组名称 文件名
语法:
chown [-R] 拥有者名称 文件名
参数:
-R 递归修改;
示例1:
[root@localhost home]#
touch
testfile
//由 root 用户创建文件
[root@localhost home]#
ls
testfile
–l
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile
//文件的拥有者及拥有者级均为 root
[root@localhost home]#
chown
yangzongde
testfile
//修改文件拥有者为 yangzongde
[root@localhost home]#
ls
testfile
-l
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile
//查看文件拥有者为 yangzongde,但组仍为 root
示例2:
[root@localhost home]# chown
bin
install.log
[root@localhost home]# ls
-l
[root@localhost home]#
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
[root@localhost home]# chown
root:
root
install.log
[root@localhost home]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
三、使用chgrp命令更改文件所属用户组
在shell中,可以使用chgrp命令来改变文件所属用户组,该命令就是单词change group(改变用户组)的缩写.需要注意的是要变为的用户组,必须是在/etc/group中存在的用户组,否则会显示错误.
语法:
chgrp [-R] 用户组名 文件名
参数:
-R 递归修改
三、使用chgrp命令更改文件所属用户组
在shell中,可以使用chgrp命令来改变文件所属用户组,该命令就是单词change group(改变用户组)的缩写.需要注意的是要变为的用户组,必须是在/etc/group中存在的用户组,否则会显示错误.
语法:
chgrp [-R] 用户组名 文件名
参数:
-R 递归修改
示例3
[root@localhost home]#
ls
testfile
-l
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile
//查看文件拥有者为 yangzongde,但组为 root
[root@localhost home]#
chgrp
yangzongde
testfile
//修改拥有者组为 yangzongde
[root@localhost home]#
ls
testfile
-l
-rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile
[root@localhost home]#
chown
root:
root
testfile
// 使用 chown 一次性修改拥有者及组
[root@localhost home]#
ls
testfile
-l
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile
示例4
[root@linux ~]#
chgrp
users
install.log
[root@linux ~]#
ls
-l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
示例5
更改为一个
/etc/group
里不存在的用户组
[root@linux ~]#
chgrp
testing
install.log
chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~