linux命令(6/11)--修改文件的用户组chgrp和文件所有者chown

时间:2021-11-30 15:25:35

在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理。可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以。Chgrp命令就是change group的缩写!要被改变的组名必须要在/etc/group文件内存在才行。

1.命令格式:

chgrp [选项] [组] [文件]

2.命令功能:

chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。使用权限是超级用户。 

3.命令参数:

必要参数:

-c 当发生改变时输出调试信息

-f 不显示错误信息

-R 处理指定目录以及其子目录下的所有文件

-v 运行时显示详细的处理信息

--dereference 作用于符号链接的指向,而不是符号链接本身

--no-dereference 作用于符号链接本身

 

选择参数:

--reference=<文件或者目录>

--help 显示帮助信息

--version 显示版本信息

 

4.使用实例:

实例1:改变文件的群组属性 

命令:

chgrp -v bin log2012.log

输出:

[root@localhost test]# ll

---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log

[root@localhost test]# chgrp -v bin log2012.log

“log2012.log” 的所属组已更改为 bin

[root@localhost test]# ll

---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

说明:

将log2012.log文件由root群组改为bin群组

 

实例2:根据指定文件改变文件的群组属性 

命令:

chgrp --reference=log2012.log log2013.log

输出:

[root@localhost test]# ll

---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log

[root@localhost test]#  chgrp --reference=log2012.log log2013.log 

[root@localhost test]# ll

---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

说明:

改变文件log2013.log 的群组属性,使得文件log2013.log的群组属性和参考文件log2012.log的群组属性相同

 

实例3:改变指定目录以及其子目录下的所有文件的群组属性 

命令:

输出:

[root@localhost test]# ll

drwxr-xr-x 2 root root   4096 11-30 08:39 test6

[root@localhost test]# cd test6

[root@localhost test6]# ll

---xr--r-- 1 root root 302108 11-30 08:39 linklog.log

-rw-r--r-- 1 root root      0 11-30 08:39 log2017.log

[root@localhost test6]# cd ..

[root@localhost test]# chgrp -R bin test6

[root@localhost test]# cd test6

[root@localhost test6]# ll

-rw-r--r-- 1 root bin     61 11-30 08:39 log2013.log

-rw-r--r-- 1 root bin      0 11-30 08:39 log2014.log

-rw-r--r-- 1 root bin      0 11-30 08:39 log2015.log

-rw-r--r-- 1 root bin      0 11-30 08:39 log2016.log

-rw-r--r-- 1 root bin      0 11-30 08:39 log2017.log

[root@localhost test6]# cd ..

[root@localhost test]# ll

drwxr-xr-x 2 root bin    4096 11-30 08:39 test6

[root@localhost test]#

说明:

改变指定目录以及其子目录下的所有文件的群组属性

 

实例4:通过群组识别码改变文件群组属性

命令:

chgrp -R 100 test6

输出:

[root@localhost test]# chgrp -R 100 test6

[root@localhost test]# ll

drwxr-xr-x 2 root users   4096 11-30 08:39 test6

指令名称 : chown 使用权限 : root 
使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file… 
利用 chown 可以将档案的拥有者加以改变。这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。 
参数:

-c或-change:作用与-v相似,但只传回修改的部分 
-f或–quiet或–silent:不显示错误信息 
-h或–no-dereference:只对符号链接的文件做修改,而不更改其他任何相关文件 
-R或-recursive:递归处理,将指定目录下的所有文件及子目录一并处理 
-v或–verbose:显示指令执行过程 
–dereference:作用和-h刚好相反 
–help:显示在线说明 
–reference=<参考文件或目录>:把指定文件或目录的所有者与所属组,统统设置成和参考文件或目录的所有者与所属组相同 
–version:显示版本信息 
chown命令使用举例:(像我用的vps,就要先ssh登录)

# chown [-R] [用户名称] [文件或目录] 
# chown [-R] [用户名称:组名称] [文件或目录]

范例1:将test3.txt文件的属主改为test用户。 
# ls -l test3.txt 
-rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt 
# chown test:root test3.txt 
# ls -l test3.txt 
-rw-r–r– 1 test root 0 2009-10-23 9:59

范例2:chown所接的新的属主和新的属组之间可以使用:连接,属主和属组之一可以为空。如果属主为空,应该是“:属组”;如果属组为空,“:”可以不用带上。

# ls -l test3.txt 
-rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt

# chown :test test3.txt <==把文件test3.txt的属组改为test 
# ls -l test3.txt 
-rw-r–r– 1 test test 0 2009-10-23 9:59 test3.txt

范例3:chown也提供了-R参数,这个参数对目录改变属主和属组极为有用,可以通过加 -R参数来改变某个目录下的所有文件到新的属主或属组。 
# ls -l testdir <== 查看testdir目录属性 
drwxr-xr-x 2 usr root 0 2009-10-56 10:38 testdir/ <==文件属主是usr用户,属组是 root用户 
# ls -lr testdir <==查看testdir目录下所有文件及其属性 
total 0 
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test1.txt 
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test2.txt 
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test3.txt 
# chown -R test:test testdir/ <==修改testdir及它的下级目录和所有文件到新的用户和用户组 
# ls -l testdir 
drwxr-xr-x 2 test test 0 2009-10-23 10:38 testdir/ 
# ls -lr testdir 
total 0 
-rw-r–r– 1 test test 0 2009-10-23 10:38 test1.txt 
-rw-r–r– 1 test test 0 2009-10-23 10:38 test2.txt 
-rw-r–r– 1 test test 0 2009-10-23 10:38 test3.txt

 

1 chgrp 改变文件或目录的所属群组

①使用 man chgrp命令可以查看chgrp在Linux中的说明文档。

②命令格式

    chgrp [-参数选项] group dir/file

    如果要更改目录下所有文件或子目录,加上参数-R。

③例子

   chgrp users install.log

  将文件install.log的所属群组改为users

2 chown 改变文件或目录的所属用户,也可顺便修改所属群组

①使用 man chown命令可以查看chown在Linux中的说明文档。

②命令格式

    chown [-参数选项] 用户名 目录或文件名

   chown [-参数选项] 用户名:群组名 目录或文件名

    如需更改子目录或包含的文件,加参数-R。

③例子

   chown bin install.log

将install.log文件的所属用户改为bin

chown bin:root install.log

将install.log文件的所属用户改为bin,所属群组改为root。

3 chmod 改变目录或文件的权限

①使用 man chmod命令可以查看chmod在Linux中的说明文档。

② 权限说明

  Linux文件的基本全线有九个,为 -rwxrwxrwx,三个为一组,分别代表owner/group/others三中身份的读/写/执行权限,如果对应位置为-,代表没有相应权限。

改变权限命令有两种方式:数字方式和符号方式

③数字方式改变文件权限类型

r:4,w:2,x:1

chmod xyz 目录或文件名

x为owner身份的三种权限对应数字相加,y、z依次类推。

④符号方式改变文件权限类型

u代表user身份,g代表group身份,o代表others,a代表所有身份;

+代表增加权限,-代表去掉权限,=代表设定权限

示例:

chmod u=rwx,go=x install.log

将install.log文件给用户身份设定可读写和执行的权限,group和others设定可执行的权限

chmod a+w install.log

设定所有用户对install.log文件都有写权限

chmod u-x install.log

去掉用户身份对install.log文件的执行权限

⑤ 说明

+和-不会改变文档原有权限,= 会重新设置原有文档所有权限。