专栏首页Opensource翻译专栏Linux chgrp和newgrp命令简介【Linux-Command line】

Linux chgrp和newgrp命令简介【Linux-Command line】

chgrp和newgrp命令可帮助你管理文件,以维护组的所有权。

图片来源:Original photo by Rikki Endsley. CC BY-SA 4.0

在近期的文章中,我介绍了chown命令,该命令用于修改系统上文件的所有权。 回想一下,所有权是分配给对象的用户和组的组合。 chgrp和newgrp命令为管理需要维护组所有权的文件提供了额外帮助。

使用chgrp

chgrp命令仅更改文件的组所有权。 它与chown:<group>命令相同。 你可以使用:

或:

递归

在命令行和脚本中,chgrp的某些其他参数可能有用。 就像许多其他Linux命令一样,chgrp具有递归参数“-R”。 你需要用它对目录及其内容进行递归操作,如下文所示。 我添加了-v(verbose参数,chgrp可以告诉我它在做什么:

Reference

更改文件上的组以匹配特定配置时,或你不确定该组时(例如运行脚本),可以使用参考文件(--reference = RFILE)。 可复制另一个文件的组(RFILE),称为参考文件。 例如,要撤消上面所做的更改(请注意,点[.]指向当前工作目录):

报告变更

大多数命令都有用于控制其输出的参数。 最常见的是“-v”,可启用详细情况,而chgrp命令具有详细模式。 它还具有“-c(--changes)”参数,该参数指示chgrp仅在进行更改时报告。 Chgrp仍会报告其他内容,例如是否不允许进行操作。

参数“-f”(--silent,--quiet)用于禁止显示大多数错误消息。 我将在下一部分中使用此参数和“-c”,以便仅显示实际更改。

保留根

Linux文件系统的根(/)应该受到高度重视。 如果在此级别上犯了一个命令错误,那么后果可能不堪设想,使系统完全无法使用。 尤其是在运行进行任何类型的更改(或更糟糕的是删除)的递归命令时。 chgrp命令具有一个可用于保护和保留根的参数。 参数是“--preserve-root”。 如果将此参数与根目录上的递归chgrp命令一起使用,则什么也不会发生,而是出现一条消息:

不与递归结合使用时,该选项无效。 但是,如果该命令由root用户运行,则“/”的权限将更改,但其中的其他文件或目录的权限则不会更改:

令人惊讶的是,这似乎不是默认参数。 选项“--no-preserve-root”是默认的。 如果你在不带“ preserve”选项的情况下运行上述命令,则它将默认为“无保留”模式,并可能更改了不应更改的文件的权限:

关于newgrp

newgrp命令允许用户覆盖当前的主组。 当你在所有文件必须具有相同组所有权的目录中工作时,newgrp会给你带来便利。 假设你的Intranet服务器上有一个名为share的目录,不同的团队在该目录中存储营销照片。 该组为share。 当不同的用户将文件放入目录时,文件的主要组可能会变得混乱。 每当添加新文件时,都可以通过将组设置为share来运行chgrp以纠正混淆情况:

我在有关chmod命令的文章中介绍了setgid模式,这是解决此问题的一种方法。 但是,假设由于某种原因未设置setgid位, newgrp命令在这种情况下将大显身手。 在任何用户将文件放入共享目录之前,它们可以运行newgrp share命令。 这会使其primary组切换为share,因此他们放入目录中的所有文件将自动具有组share,而不是用户的primary组。 完成操作后,用户可以(如下例)切换回常规primary组:

结论

理解如何管理用户,组和权限是至关重要的。 最好了解一些替代方法来解决潜在问题,因为并非所有环境都以相同的方式设置。

原文链接:https://opensource.com/article/19/9/linux-chgrp-and-newgrp-commands

原文作者:Alan Formy-Duval(Community Moderator)

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux useradd命令简介【Linux-Command line】

    添加用户是任何计算机系统上最基本的练习之一。 本文重点介绍如何在Linux系统上执行此操作。

    QRosie
  • Linux 命令多到记不住?这个开源项目帮你一网打尽!

    最近发现了一个开源项目,简直赞不绝口,喜爱之情,无以言表,用它可以完美避免上述情况的发生。

    良月柒
  • Linux tac命令入门【Linux-Command line】

    tac命令本质上是cat命令,但其目的是反向连接文件。 像cat一样,如果没有提供输出文件,它也具有方便的后备模式,可打印到标准输出(STDOUT),使其成为比...

    QRosie
  • 常用Linux 命令速查表【Linux-Command line】

    常用Linux 命令速查表——下载我们的新版Linux命令速查表,以便执行常见任务

    QRosie
  • 显示硬件信息的Linux命令【Linux-Command line】

    可能有很多原因导致你需要查找有关计算机硬件的详细信息。 例如,如果需要帮助修复某些问题并在在线论坛上发布请求,人们会立即询问你有关计算机的详细信息。 再者,如果...

    QRosie
  • linux下权限管理

    删除账号,就是将/etc/passwd等系统文件中的该用户记录删除,必要时还需删除用户的主目录

    dogfei
  • linux 命令英文全称

    su:Swith user  切换用户,切换到root用户 cat: Concatenate  串联 uname: Unix name  系统名称 df...

    幽鸿
  • 在命令行进行sort排序【Linux-Command line】

    使用sort命令重组数据,可以从Linux,BSD或Mac终端以对你有意义的格式进行。

    QRosie
  • Linux 文件类型+目录结构+常用命令(二)

    1、/- 根 每一个文件和目录从根目录开始。 只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/.不一样

    wuweixiang

扫码关注云+社区

领取腾讯云代金券