使用权限 : root
使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file…
说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
把计 :
user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)–help : 显示辅助说明–version : 显示版本
范例 :
将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
chown jessie:users file1.txt
将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
chown -R lamport:users *
功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
语法:chown [选项] 用户或组 文件
说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户I D。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。 该命令的各选项含义如下:
-R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
-v 显示chown命令所做的工作。
chgrp(change group) 在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
功能说明:变更文件或目录的所属群组。
语 法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
参 数:
-c或–changes 效果类似-v参数,但仅回报更改的部分。
-f或–quiet或–silent 不显示错误信息。
-h或–no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
–help 在线帮助。
–reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
–version 显示版本信息。
========测试环境: Fedora Core 6.0;内核:2.6.18========
#首先建立一个文档,为普通用户文档。
[klot@localhost ~]$ echo aa>>1
[klot@localhost ~]$ ls -al 1
-rw-r–r– 1 klot users 3 08-16 21:26 1
[klot@localhost ~]$
#su
[klot@localhost ~]$ su
口令:
[root@localhost klot]# ls -al 1
-rw-r–r– 1 klot users 3 08-16 21:26 1
#最基本的用法
[root@localhost klot]# chgrp root 1
[root@localhost klot]# ls -al 1
-rw-r–r– 1 klot root 3 08-16 21:26 1
[root@localhost klot]#
# -R之后可以更改目录中的子目录,也即使归档处理。我不举例子了。很有用的参数。
[root@localhost klot]# chgrp users 1
[root@localhost klot]# ls -al 1
-rw-r–r– 1 klot users 3 08-16 21:26 1
[root@localhost klot]# chgrp -c root 1
“1 的所属组已更改为 root
#以上,-c与-v类似,但是v表示无论如何也要显示结果,c表示只有更改组之后才显示结果。
[root@localhost klot]# ln -s ./1 ./Desktop/11
[root@localhost klot]# ls -al ./Desktop/11
lrwxrwxrwx 1 root root 3 08-16 21:39 ./Desktop/11 -> ./1
[root@localhost klot]# chgrp -h users ./Desktop/11
[root@localhost klot]# chgrp -h -v users ./Desktop/11
“./Desktop/11 的所属组已保留为 users
[root@localhost klot]#
#以上,ln创建了符号连接,而-h有且只有改变符号连接的用户组,与参数 –dereference正好相反。
#-f为安静模式,不显示大部分错误信息。我不实验了。
The following options modify how a hierarchy is traversed when the -R
option is also specified. If more than one is specified, only the
final one takes effect.
# 以下参数只有和-R同时使用才奏效。如果要转换的文件超过一个,那么只有最后一个奏效。
#-H, if a command line argument is a symbolic link to a directory, traverse it。没明白!!
#(-H, 如果chgrp命令中的参数之一是一个目录的符号连接,那么转换它)
#-L,所有指向目录的连接都会被转换。
#-P,忽略所有符号连接(默认)