首页 > 代码库 > chown命令
chown命令
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
1.命令格式:
chown [选项]... [所有者][:[组]] 文件...
2.命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
3.命令参数:
必要参数:
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身
选择参数:
--reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
--from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变
--help 显示帮助信息
--version 显示版本信息
4.使用实例:
实例1:改变拥有者和群组
命令:
chown mail:mail log2012.log
输出:
[root@localhost test6]# ll ---xr--r-- 1 root users 302108 11-30 08:39 linklog.log ---xr--r-- 1 root users 302108 11-30 08:39 log2012.log -rw-r--r-- 1 root users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root users 0 11-30 08:39 log2014.log -rw-r--r-- 1 root users 0 11-30 08:39 log2015.log -rw-r--r-- 1 root users 0 11-30 08:39 log2016.log -rw-r--r-- 1 root users 0 11-30 08:39 log2017.log [root@localhost test6]# chown mail:mail log2012.log [root@localhost test6]# ll ---xr--r-- 1 root users 302108 11-30 08:39 linklog.log ---xr--r-- 1 mail mail 302108 11-30 08:39 log2012.log -rw-r--r-- 1 root users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root users 0 11-30 08:39 log2014.log -rw-r--r-- 1 root users 0 11-30 08:39 log2015.log -rw-r--r-- 1 root users 0 11-30 08:39 log2016.log -rw-r--r-- 1 root users 0 11-30 08:39 log2017.log [root@localhost test6]#
说明:
实例2:改变文件拥有者和群组
命令:
chown root: log2012.log
输出:
[root@localhost test6]# ll 总计 604 ---xr--r-- 1 root users 302108 11-30 08:39 linklog.log ---xr--r-- 1 mail mail 302108 11-30 08:39 log2012.log -rw-r--r-- 1 root users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root users 0 11-30 08:39 log2014.log -rw-r--r-- 1 root users 0 11-30 08:39 log2015.log -rw-r--r-- 1 root users 0 11-30 08:39 log2016.log -rw-r--r-- 1 root users 0 11-30 08:39 log2017.log [root@localhost test6]# chown root: log2012.log [root@localhost test6]# ll 总计 604 ---xr--r-- 1 root users 302108 11-30 08:39 linklog.log ---xr--r-- 1 root root 302108 11-30 08:39 log2012.log -rw-r--r-- 1 root users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root users 0 11-30 08:39 log2014.log -rw-r--r-- 1 root users 0 11-30 08:39 log2015.log -rw-r--r-- 1 root users 0 11-30 08:39 log2016.log -rw-r--r-- 1 root users 0 11-30 08:39 log2017.log [root@localhost test6]#
说明:
实例3:改变文件群组
命令:
chown :mail log2012.log
输出:
[root@localhost test6]# ll 总计 604 ---xr--r-- 1 root users 302108 11-30 08:39 linklog.log ---xr--r-- 1 root root 302108 11-30 08:39 log2012.log -rw-r--r-- 1 root users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root users 0 11-30 08:39 log2014.log -rw-r--r-- 1 root users 0 11-30 08:39 log2015.log -rw-r--r-- 1 root users 0 11-30 08:39 log2016.log -rw-r--r-- 1 root users 0 11-30 08:39 log2017.log [root@localhost test6]# chown :mail log2012.log [root@localhost test6]# ll 总计 604 ---xr--r-- 1 root users 302108 11-30 08:39 linklog.log ---xr--r-- 1 root mail 302108 11-30 08:39 log2012.log -rw-r--r-- 1 root users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root users 0 11-30 08:39 log2014.log -rw-r--r-- 1 root users 0 11-30 08:39 log2015.log -rw-r--r-- 1 root users 0 11-30 08:39 log2016.log -rw-r--r-- 1 root users 0 11-30 08:39 log2017.log
说明:
实例4:改变指定目录以及其子目录下的所有文件的拥有者和群组
命令:
chown -R -v root:mail test6
输出:
[root@localhost test]# ll drwxr-xr-x 2 root users 4096 11-30 08:39 test6 [root@localhost test]# chown -R -v root:mail test6 “test6/log2014.log” 的所有者已更改为 root:mail “test6/linklog.log” 的所有者已更改为 root:mail “test6/log2015.log” 的所有者已更改为 root:mail “test6/log2013.log” 的所有者已更改为 root:mail “test6/log2012.log” 的所有者已保留为 root:mail “test6/log2017.log” 的所有者已更改为 root:mail “test6/log2016.log” 的所有者已更改为 root:mail “test6” 的所有者已更改为 root:mail [root@localhost test]# ll drwxr-xr-x 2 root mail 4096 11-30 08:39 test6 [root@localhost test]# cd test6 [root@localhost test6]# ll 总计 604 ---xr--r-- 1 root mail 302108 11-30 08:39 linklog.log ---xr--r-- 1 root mail 302108 11-30 08:39 log2012.log -rw-r--r-- 1 root mail 61 11-30 08:39 log2013.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2014.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2015.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2016.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2017.log
以上为网络信息
一个Linux的目录或者文件都会有一个所有者和所属组。
所有者:即文件的拥有者;
所属组:即该文件所属主所在的一个组。
Linux这样设置文件属性的目的是为了文件的安全。
例如,
【test文件的所属主是user0而test1文件的所属主是user1,那么user1是不能查看test文件的,相应的user0也不能查看test1文件。有时我们也会有这样的需求,让一个文件同时让user0和user1来查看,这怎么实现呢?
这时“所属组”就派上用场了。即:
创建一个组user让user0和user1同属于users组,然后建立一个问件test2,且其所属组为users,那么user0和user1都可以访问test2文件
Linux文件属性不仅规定了所属主和所属组,还规定了所属主(user)、所属组(group)以及其他用户(others)对该文件的权限。我们可以通过ls -l来查看这些属性】。
history:命令历史
更改所属组chown
语法:chgrp[组名][文件名]
例如:
这里用到了“groupadd”命令,其含义为增加一个用户组。它除了更改文件所属组,还可以更改目录的所属组。
chgrp命令也可以更改目录的所属组,但是只能更改目录本身,而目录下面的目录或者文件没有更改,要想级联更改子目录以及子文件,有个选项可以实现:
例:
# chgrp -R testgroup dirb
#ls -l dirb
总用量 8
drwxr-xr-x. 2 root testgroup 4096 5月 10 05:08 dirc
-rw-r--r--. 1 root testgroup 20 5 月 10 05:37 filee
以上仅供参考,(见书p62)
chgroup命令我们使用的不多,因为还有一个命令可以替代它。
更改文件所有者 chown
语法:chown[-R]账户名 文件名chown[-R]账户名:组名 文件名
这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。
“chown -R user1:testgroup”会把test目录以及目录下的文件都修改成所属主为user1,所属组为testgroup。
本文出自 “12350027” 博客,谢绝转载!
chown命令