在 Linux 權限中,包括目錄在內的所有文件都與用戶和組所有權相關聯。 此外,文件和目錄以及通常分配的確定訪問權限(例如讀取、寫入和執行)的權限最終確定誰具有訪問它們的權限。
在本教程中,我將向您展示如何使用 chgrp 命令更改文件或目錄的組所有權。 Linux 更改組命令,稱為 chgrp
用於更改文件或目錄所屬的組名。 與要求您同時指定用戶名和組名的 chown 命令不同, chgrp
只需要組。
chgrp 命令的語法
更改文件所屬組的語法非常簡單。 只需調用 chgrp
命令,然後在對象名稱之後定義組名稱。
$ chgrp OPTION group_name /path/to/file or directory
group_name 屬性表示文件或目錄將獲得的新組。 此外,您可以指定 GID(組 ID)而不是組名稱。 在這種情況下,您需要在 GID 後附加一個加號 (+)。
使用 chgrp 命令更改文件組
在本節中,我們將了解如何更改文件的組所有權。 在使用 chgrp 命令更改文件的組之前,建議先驗證文件所屬的當前組。 這可以很容易地使用 ls 命令打印文件的文件權限來完成,如下所示:
$ ls -l
這 example 下面打印出名為的文件的文件權限 settings.py
在 docs 目錄中。
從上面的輸出中,該文件屬於用戶 ‘Winnie’ 和組 ‘Winnie’。 將文件組從“Winnie”更改為“linoxide”組 example, 運行 chgrp 命令,如圖:
$ chgrp linoxide settings.py
但是,在大多數情況下,當以普通用戶身份更改文件或目錄的組時,您會遇到 chgrp operation not permitted
錯誤如下圖所示。 該錯誤表明用戶沒有足夠的權限來更改文件的組所有權。

此挑戰的解決方法是將普通用戶添加到 sudoers 組並調用 sudo 命令如下圖:
$ sudo chgrp linoxide settings.py

從上面的輸出中,我們可以看到在調用 sudo 命令並提交密碼。
此外,您可以在使用 chgrp 命令時指定多個文件作為參數,如下所示:
$ sudo chgrp group_name file_1 file_2 file_3
在裡面 example 下面,我們有 3 個文件: settings.py
, file1.txt
和 file2.txt
都屬於“Winnie”組。 現在讓我們將組所有權更改為“linoxide”。 語法將是:
$ sudo chgrp linoxide settings.py file1.txt file2.txt

遞歸更改組所有權
有時,您可能需要遞歸更改目錄的所有文件和子目錄的組。 要遞歸更改組名,請使用 -R
標誌如下面的語法所示。
$ sudo chgrp group-name directory
為了 example, 改變所有權 /var/www/html/nextcloud
目錄及其內容 www-data group
,運行命令:
$ sudo chgrp -R www-data /var/www/html/nextcloud
更改符號鏈接的組所有權
使用遞歸選項不會遍歷符號鏈接,因此符號鏈接將保留其組所有權。 要將組所有權應用於符號鏈接,請傳遞 -h
參數如圖:
$ sudo chgrp -Rh www-data /var/www/html/nextcloud
結論
在本教程中,我們向您介紹了 chgrp
Linux 中的命令。 雖然您可以使用 chown 命令實現相同的目的,但 chgrp 命令提供了一種更簡單的方法。
有些人可能會問,當 chown 命令存在時,為什麼我們有 chgrp。 chgrp 代碼構建得更舊,chown 最初無法設置組。
注意:Chown 只更改組 chown :group
在許多平台上仍然不是可移植的或標準的。
感謝閱讀,請在下面的評論部分提供您的反饋。