帶有示例的 Linux Chgrp 命令

在 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 錯誤如下圖所示。 該錯誤表明用戶沒有足夠的權限來更改文件的組所有權。

chgrp 權限錯誤

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

$ sudo chgrp linoxide settings.py

linux chgrp 命令

從上面的輸出中,我們可以看到在調用 sudo 命令並提交密碼。

此外,您可以在使用 chgrp 命令時指定多個文件作為參數,如下所示:

$ sudo chgrp group_name file_1 file_2 file_3

在裡面 example 下面,我們有 3 個文件: settings.py, file1.txtfile2.txt 都屬於“Winnie”組。 現在讓我們將組所有權更改為“linoxide”。 語法將是:

$ sudo chgrp linoxide settings.py file1.txt file2.txt

chgrp Linux 命令

遞歸更改組所有權

有時,您可能需要遞歸更改目錄的所有文件和子目錄的組。 要遞歸更改組名,請使用 -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 在許多平台上仍然不是可移植的或標準的。

感謝閱讀,請在下面的評論部分提供您的反饋。