在 Linux 中,change group 或 chgrp 命令主要用于更改系统的用户组。 chgrp 命令适用于 Linux 和其他类 Unix 操作系统。 如果你是系统 admin,你一定已经知道 chgrp、chmod 和 chown 命令是最强大和最常用的终端命令。
按照惯例,chgrp 命令与 sudo 或系统中的 root 权限,但如果您是该特定文件或目录的所有者,您也可以执行更改组命令。 change group 命令最常见的用法是在组中安装新包,将一个文件从用户组移动到另一个目录,以及编辑一个不可读/可写的文件。 这个 chgrp 命令非常方便,是危急情况下的救命稻草。
为什么 chgrp,什么时候 chown 可以做同样的事情?
也许,您可能想知道为什么需要使用更改组命令,而您可以使用 chown 命令更改整个所有权? 这是为什么的答案; 毫无疑问,chown 命令是一个非常强大的命令。 有时,chown 命令可能会做出不需要且不可接受的更改。 为了保护您的文件免于粗心和意外使用 chown 命令,使用 chgrp 命令是安全的。
chgrp 命令广泛用于更改单个或一组文件的所有权。 如果您是项目所有者并且现在想要移交文件,或者想要在不更改整个目录的情况下将新团队成员添加到您的团队,那么更改组命令可能对您非常有帮助。
即使您不是文件的主要所有者,但您属于该组并且拥有 sudo 访问,您可以添加成员,更改组权限,将更多成员添加到主组或辅助组。 在这篇文章中,我们将看到 Linux 上最常见和最常用的 chgrp 命令。
1. 使用 chgrp 检查组信息
在 chgrp 命令的最开始,您可能想知道组名以确保您在该组中。 为此,您只需执行 ls -l
终端外壳上的命令。 作为回报,您将看到用户名、组名和文件详细信息。
ls -l
2. chgrp 命令语法
Linux 上更改组命令的语法非常容易理解。 这个跨平台的终端命令可以在所有主要的 Linux 桌面、服务器和类 Unix 操作系统上执行。 这是 chgrp 命令的基本语法模式。
chgrp [OPTION]… GROUP path/FILE_NAME sudo addgroup ubuntupitdemo sudo chgrp ubuntupitdemo test.txt ls -l
3.将用户添加到组
正如我已经提到的,如果您有,您可以将更多人添加到您的工作组或目录组 sudo 使用权。 这是您可以在终端 shell 上执行的命令。 例如,在这里,我在用户组中添加了用户 ubuntupitdemo。
$ sudo useradd ubuntupitdemo # touch test.txt # ls -lt test.txt
4. chgrp 命令所有权
如果您需要更改文件、文件夹或目录的所有权,您可以在 shell 上轻松执行以下 chgrp 命令。 例如,在这里,我将创建一个新目录,并更改此目录的组。
sudo mkdir New_Dir sudo chgrp ubuntupitdemo New_Dir
5.递归更改组权限
在 Linux 中,您可以通过 change group 命令更改目录的所有权。 以下带有 -R 标志的 chgrp 命令将允许您在组内定义您需要更改目录的活动集的元素。
sudo chgrp -R ubuntupitdemo New_Dir
6. 带有参考文件的 chgrp 命令
如果您需要使用以前的引用或通过引用或匹配另一个组,您可以在 shell 上使用以下更改组命令。 在这里,您需要使用参考语法添加 -R 标志。
sudo chgrp -R --reference=test.txt New_Dir
7. 带软链接的 chgrp 命令
在Linux中,文件系统内部有很多操作和文件夹,其中目录的软链接用来指示原始目录。 但是,如果您需要更改该文件夹的组,您可以将 –dereference/ 和 –no-dereference 语法与 change group 命令一起使用。
sudo chgrp --dereference ubuntupitdemo symbolic_link
当您使用 -dereference 语法时,它将更改该组的原始名称。 另一方面,无解引用语法只会更改符号链接或软链接的名称,同时保持原始文件夹不变。
8. 显示 chgrp 执行详情
对于系统管理员和 Linux 高级用户,此命令将很有帮助。 如果您想查看系统上文件的更改日志,请执行上述命令。
sudo chgrp -c -R [GROUP_NAME] [DIRECTORY/FILE_NAME] sudo chgrp -c -R ubuntupitdemo example
9. 隐藏 chgrp 命令错误
如果您只需要显示命令的最终输出并且需要从终端 shell 隐藏所有错误,则下面提到的带有 -f 标志的更改组命令将隐藏所有错误。
sudo chgrp -f [GROUP_NAME] [DIRECTORY/FILE_NAME]
10. chgrp 命令添加多个文件
如果您需要一次更改多个文件的组,可以使用下面提到的更改组命令作为 shell 中的数组参数。
sudo chgrp www-data file1 file2 dir1
11. 一起运行 chown 和 chgrp 命令
如果您正在考虑在同一命令中结合使用 chown 和 chgrp,那也不是不可能的。 在某种程度上,您可以先添加 chown 命令,然后您可以定义要为该命令分配的用户组。 下面提供的命令可能会帮助您理解命令和语法。
$ chown someusername:somegroupname filename.ext $ sudo chown user_name:group _name file_name
您可以浏览 Linux 系统上 chown 和 chgrp 命令的手册页。
man chown man chgrp
额外提示:您在 chgrp 命令中可能遇到的问题
在这里,我将分享一些关于 Linux 上更改组命令的最常见问题的答案。 请检查您是否需要解决以下任何一种情况。
如果在 Linux 服务器或桌面上执行 chgrp 命令时遇到错误,请确保已包含目录路径。 在大多数情况下,它不会在桌面上造成任何问题,但在 Linux 服务器上执行 chgrp 命令时要小心, Apache、Nginx 或 SSH 服务器。
如果您需要在文件系统上重置更改组规则,可以使用 setfacl 命令恢复目录所有权。 下面提到的 setfacl 和 getfacl 命令都可以有效地恢复组所有权。
setfacl --restore={dir}.facl getfacl -R {dir} >{dir}.facl
在某些情况下,您可能还会遇到在 Linux 上执行 chgrp 命令的问题。 在这种情况下,您可以编辑系统上的 sudoers 文件。 sudoers 文件是控制器,可以定义允许哪个用户组执行哪些命令。 您可以在 /etc/sudoers 目录中找到 sudoers 文件。
见解!
使用 change group 命令让你的 Linux 使用体验更加专业和强大。 如果您知道自己在做什么,执行起来是非常安全的。 执行 chgrp 命令时请小心,以免文件系统被遗弃。 通过正确了解更改组命令,它可以成为 Linux 用户的瑞士军刀。 在整篇文章中,我们看到了 Linux 上 chgrp 命令的基本而强大的命令。
如果您觉得这篇文章有用且内容丰富,请与您的朋友和 Linux 社区分享。 您也可以在评论部分写下您对这篇文章的看法。