当前位置: 首页 > 科技观察

chgrp和newgrp命令简介

时间:2023-03-14 21:46:01 科技观察

chgrp和newgrp命令帮助您管理需要维护组所有权的文件。在最近的一篇文章中,我介绍了chown命令,它用于修改系统上文件的所有权。回想一下,所有权是分配给对象的用户和组的组合。chgrp和newgrp命令为管理需要维护组所有权的文件提供帮助。使用chgrpchgrp只是更改文件的组所有权。这与chown:命令相同。您可以使用:$chown:alanmynotes或:$chgrpalanmynotesrecursivechgrp及其一些参数可以在命令行和脚本中使用。与许多其他Linux命令一样,chgrp有一个递归参数-R。如下所示,您需要它对文件夹及其内容执行递归操作。我添加了-v(详细)参数,因此chgrp会告诉我它在做什么:$ls-l。conf.:drwxrwxr-x2alanalan4096Aug515:33confconf:-rw-rw-r--1alanalan0Aug515:33conf.xml#chgrp-vRdeltaconfchangedgroupof'conf/conf.xml'从alan到deltachangedgroupof'conf'从alan到delta当您想要更改文件的组以匹配特定配置时,或者当您不知道确切的组时(例如当您运行脚本时)参考,使用参考文件(--reference=RFILE)。您可以复制另一个组作为参考文件(RFILE)。例如,要撤消上面的更改(请注意点.代表当前工作目录):$chgrp-vR--reference=。conf报告更改大多数命令都有控制其输出的参数。最常见的是-v来启用详细信息,chgrp命令也有详细模式。它还有一个-c(--changes)参数,指示chgrp仅在发生更改时报告。chgrp还报告其他事情,例如不允许操作的时间。参数-f(--silent,--quiet)用于抑制大多数错误消息。我将在下一节中将此参数与-c一起使用以显示实际更改。保留根目录Linux文件系统的根目录(/)应该被赋予高优先级。如果命令在此级别出错,后果可能很严重,并导致系统无法使用。特别是在运行递归修改甚至删除的命令时。chgrp命令有一个参数,可用于保护和维护根目录。它是--preserve-root。如果你在根目录下递归使用这个参数,什么也不会发生,但是会出现一条消息:[root@localhost/]#chgrp-cfR--preserve-roota+w/chgrp:itisdangeroustooperaterecursivelyon'/'chgrp:使用--no-preserve-root来覆盖此故障保护此选项在未与递归(-R)结合使用时无效。但是,如果命令是root运行的,/的权限会被改变,但它下面的其他文件或目录不会:[alan@localhost/]$chgrp-c--preserve-rootalan/chgrp:changinggroupof'/':Operationnotpermitted[root@localhost/]#chgrp-c--preserve-rootalan/changedgroupof'/'fromroottoalan令人惊讶的是,它似乎不是默认参数。选项--no-preserve-root是默认选项。如果您在没有“保留”选项的情况下运行上述命令,它将默认为“不保留”模式,并且可能会更改不应更改的文件的权限:[alan@localhost/]$chgrp-cfRalan/changedgroupof'/dev/pts/0'从tty到alan更改组'/dev/tty2'从tty到alan更改组'/var/spool/mail/alan'从mail到alan关于newgrpnewgrp命令允许用户覆盖当前的主要组。当您在所有文件必须具有相同组所有权的目录中工作时,newgrp非常方便。假设您的Intranet服务器上有一个名为share的目录,不同的团队在其中存储活动照片。组名为共享。当不同的用户将文件放入目录时,主要的文件组可能会混淆。每当您添加新文件时,您都可以运行chgrp来更正混乱的组以共享:$cdshares-l-rw-r--r--。1艾伦分享08月7日15:35pic13-rw-r--r--。1alanalan08月7日15:35pic1-rw-r--r--。1susandelta08月7日15:35pic2-rw-r--r--。1詹姆斯伽玛08月7日15:35pic3-rw-rw-r--。1billcontract0Aug715:36pic4我在关于chmod命令的文章中介绍了setgid模式。这是解决这个问题的一种方法。但是,假设由于某种原因没有设置setgid位。此时newgrp命令很有用。在任何用户将文件放入共享目录之前,他们可以运行命令newgrpshare。这会将他们的主要组切换为共享,因此他们放入目录中的任何文件都将具有共享组而不是用户自己的主要组。完成后,用户可以使用以下命令切换回常规主要组(例如):newgrpalan摘要了解如何管理用户、组和权限很重要。请注意解决您可能遇到的问题的一些替代方案,因为并非所有环境都以相同的方式设置。