Linux命令·chgrp·chown

文章详细介绍了Linux系统中用于管理文件和目录权限的两个重要命令:chgrp和chown。chgrp命令允许用户改变文件或目录的所属群组,可以通过群组名称或识别码来指定,同时支持递归处理目录。chown命令则用于改变文件的拥有者和群组,同样支持用户和组ID,并且可以处理符号链接。这两个命令在系统管理中常用于调整文件访问权限和所有权。
摘要由CSDN通过智能技术生成

在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

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

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

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

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

-rw-r--r-- 1 root root 0 11-30 08:39 log2016.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

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

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

-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

[root@localhost test]# cd test6

[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]#

说明:

通过群组识别码改变文件群组属性,100为users群组的识别码,具体群组和群组识别码可以去/etc/group文件中查看

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 /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件。linux /etc/group文件是有关于系统管理员对用户和用户组管理的文件,linux用户组的所有信息都存放在/etc/group文件中。具有某种共同特征的用户集合起来就是用户组(Group)。用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件。

将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不 同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

用户组的所有信息都存放在/etc/group文件中。此文件的格式是由冒号(:)隔开若干个字段,这些字段具体如下:

组名:口令:组标识号:组内用户列表

具体解释:

组名:

组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

口令:

口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。

组标识号:

组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.

组内用户列表:

是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

使用实例:

输出:

[root@localhost test6]# cat /etc/group

root:x:0:root,linuxsir

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin

说明:

我们以root:x:0:root,linuxsir 为例: 用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值