专栏首页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 条评论
登录 后参与评论

相关文章

  • 7个实用的Bash历史快捷方式【Linux-Command line】

    大多数Bash历史快捷方式指南都详尽列出了每个可用的条目。 这样做的问题是,我只使用一次快捷方式,当我尝试所有可能性时,我变得目光呆滞。 然后,我将投入工作并完...

    QRosie
  • 3个用于从命令行进行演示的工具【Linux-Command line】

    mdp,tpp和send可能不会为你赢得任何设计大奖,但是它们会为你提供可以从终端运行的基本幻灯片。

    QRosie
  • intermediate awk 脚本指南【Linux-Command line】

    你可以使用逻辑运算符“and”(写作“&&”)和“or”(写作“||”)为条件添加特异性。

    QRosie
  • 蝴蝶效应

    蝴蝶效应(The Butterfly Effect)是指在一个动力系统中,初始条件下微小的变化能带动整个系统的长期的巨大的连锁反应。这是一种混沌...

    宇相
  • 深度学习和自然语言处理:介绍

    接下来,小编将会系统地推送斯坦福大学Richard Socher教授的最新课程:深度学习和自然语言处理。

    double
  • Google VS 亚马逊 VS 微软,机器学习服务选谁好?

    译者 | reason_W 编辑 | Just 对大多数企业来说,机器学习听起来就像航天技术一样,属于花费不菲又“高大上”的技术。如果你是想构建一个 Netfl...

    AI科技大本营
  • Google发布Nearby Connections API 2.0版本,可拓展本地信息和数据分享

    关注过 I/O 2017 开发者大会的网友们,或许还记得 Google 提到过的“情境应用体验”(Contextual App Experiences)。这组 ...

    BestSDK
  • 大数据与云计算的新引擎 – Kona JDK 11揭秘

    丨导语 时间过得真快,JDK 11已经发布近两年了,大家从最开始看到ZGC、JFR等特性的眼前一亮直到今天,似乎并没有见到广泛进入生产,Java开发者的普遍...

    腾讯大数据
  • 这群工程师,业余将中文 NLP 推进了一大步

    内容一览:什么?中文 NLP 和英文 NLP 研究的是两个方向?源远流长的汉语让 NLP 的探索,变得步履维艰?我们将在本文的内容里,一起回顾最近以来,那些给中...

    HyperAI超神经
  • CMD,PowerShell快速定位到当前目录

    在使用CMD,PowerShell的时候,经常需要定位到资源管理器的当前目录。每一次从开始菜单打开,都要cd目录太麻烦。其实可以直接在资源管理器中打开CMD,P...

    Mr. Wei

扫码关注云+社区

领取腾讯云代金券