Lệnh chgrp trong Linux được sử dụng để thay đổi nhóm sở hữu của file hoặc thư mục trong hệ thống. Việc sử dụng chgrp giúp quản lý quyền truy cập theo nhóm hiệu quả hơn, đặc biệt trong môi trường nhiều người dùng hoặc hệ thống máy chủ cần phân quyền rõ ràng. Trong bài viết này, mình sẽ cùng bạn tìm hiểu chi tiết cách dùng lệnh chgrp trong Linux kèm các ví dụ cụ thể để áp dụng chính xác trong thực tế.
Những điểm chính
- Khái niệm: Hiểu rõ lệnh chgrp là lệnh được sử dụng để thay đổi nhóm chủ sở hữu cho các file hoặc thư mục.
- Cú pháp: Nắm vững cấu trúc lệnh chgrp chuẩn cũng như các đối tượng cần tác động để thực thi thao tác quản trị chính xác trong terminal.
- Các tùy chọn phổ biến: Biết cách tùy chỉnh lệnh thông qua các tham số như chạy đệ quy, hiển thị chi tiết hoặc sao chép nhóm từ một file mẫu có sẵn.
- Các ví dụ sử dụng thực tế: Thành thạo kỹ năng thay đổi nhóm cho từng file, thư mục riêng lẻ hoặc áp dụng đồng bộ cho toàn bộ hệ thống thư mục con.
- Một số lỗi thường gặp: Chủ động nhận diện và biết cách khắc phục nhanh các sự cố liên quan đến quyền hạn thực thi hoặc sai định danh nhóm.
- Câu hỏi thường gặp: Giải đáp các thắc mắc thường gặp liên quan đến lệnh chgrp trong Linux.
Lệnh chgrp trong Linux là gì?
Lệnh chgrp (change group) là lệnh được sử dụng để thay đổi nhóm chủ sở hữu cho các file hoặc thư mục. Thao tác này giúp quản trị viên kiểm soát và điều chỉnh quyền hạn của người dùng đối với dữ liệu đó dựa trên nhóm được gán. Đây là câu lệnh quan trọng khi bạn muốn nhiều user thuộc cùng một nhóm có thể cùng chỉnh sửa, đọc hoặc thực thi file. Cụ thể, lệnh chgrp hỗ trợ người dùng thực hiện các tác vụ sau:
- Chuyển group sở hữu file hoặc thư mục sang một group khác.
- Áp dụng thay đổi theo dạng đệ quy cho toàn bộ thư mục con.
- Quản lý phân quyền dựa trên nhóm người dùng.
- Kiểm soát truy cập trong môi trường có nhiều người dùng.

Cú pháp của lệnh chgrp
Dưới đây là cú pháp tổng quát của lệnh chgrp:
chgrp [OPTIONS] GROUP FILE_OR_DIRECTORYTrong đó:
GROUP: Tên group bạn muốn gán làm owner mới.FILE_OR_DIRECTORY: File hoặc thư mục cần thay đổi.
Lưu ý
Nếu file không thuộc quyền sở hữu của group mà bạn đang tham gia, bạn bắt buộc phải sử dụng quyền sudo.
Các tùy chọn phổ biến của lệnh chgrp
Dưới đây là các tùy chọn phổ biến giúp bạn có thể tùy chỉnh hoạt động của lệnh chgrp:
| Tùy chọn | Chức năng |
|---|---|
-c, --changes | Chỉ xuất thông báo ra màn hình đối với những file có sự thay đổi về nhóm sở hữu. |
-f, --silent, --quiet | Hệ thống sẽ bỏ qua và không hiển thị các thông báo lỗi nếu có sự cố xảy ra trong quá trình chạy lệnh. |
-v, --verbose | In ra màn hình trạng thái xử lý của file và thư mục được xử lý. |
--dereference | Nếu mục tiêu là một symlink, lệnh sẽ thay đổi nhóm sở hữu của file gốc mà liên kết đó trỏ tới, chứ không thay đổi chính file liên kết. |
--no-preserve-root | Cho phép thực thi lệnh tác động lên thư mục gốc mà không có cơ chế bảo vệ đặc biệt nào. |
--preserve-root | Ngăn chặn lệnh thực hiện đệ quy trên thư mục gốc/, giúp tránh các sự cố làm hỏng hệ thống. |
--reference=RFILE | Thay vì nhập tên nhóm thủ công, tùy chọn này cho phép sao chép nhóm sở hữu từ một file mẫu và áp dụng cho các file mục tiêu. |
-R, --recursive | Đổi nhóm sở hữu cho thư mục chỉ định và tất cả các file/thư mục con nằm bên trong. |
--version | Kiểm tra thông tin phiên bản hiện tại của gói phần mềm chgrp đang cài trên máy. |
--help | Hiển thị bảng hướng dẫn sử dụng nhanh và danh sách đầy đủ các tùy chọn hỗ trợ. |
Các ví dụ sử dụng lệnh chgrp thực tế
1. Thay đổi group của một file
Để chuyển quyền sở hữu của một file cụ thể sang nhóm docker, bạn hãy sử dụng lệnh sau:
chgrp docker file.txtKhi đó, file file.txt sẽ chuyển sang group sở hữu là docker.

2. Thay đổi group của một thư mục
Trong trường hợp bạn cần thay đổi nhóm sở hữu cho thư mục /home/vietnix sang nhóm project, câu lệnh thực hiện sẽ là:
chgrp project /home/vietnixThư mục /home/vietnix sẽ thuộc về group project.

3. Thay đổi group đệ quy
Khi bạn muốn áp dụng quyền sở hữu nhóm docker cho thư mục /home/vietnix và đồng bộ cho tất cả các file con bên trong, hãy sử dụng tùy chọn -R:
chgrp -R docker /home/vietnixTùy chọn -R sẽ áp dụng thay đổi cho toàn bộ file và thư mục con bên trong. Bạn nên dùng lệnh này khi muốn phân quyền cho cả một cây thư mục.
4. Hiển thị chi tiết các thay đổi
Để hệ thống hiển thị thông báo chi tiết quá trình thay đổi nhóm sở hữu của file.txt ngay trên màn hình, bạn thêm tùy chọn -v vào câu lệnh như sau:
chgrp -v docker file.txtHệ thống sẽ in ra màn hình thông báo chi tiết về việc thay đổi group cho file này.

Một số lỗi thường gặp khi sử dụng lệnh chgrp
1. Lỗi “Operation not permitted”
Đây là lỗi phổ biến nhất khi người dùng cố gắng thay đổi nhóm sở hữu mà không có đủ đặc quyền.
- Nguyên nhân: Bạn không phải là chủ sở hữu của tệp tin hoặc thư mục đó.
- Bạn đang cố gắng chuyển file sang một nhóm mà tài khoản của bạn không phải là thành viên.
- Tệp tin nằm trong các thư mục hệ thống quan trọng được bảo vệ.
- Cách khắc phục: Sử dụng quyền quản trị tối cao là sudo để thực thi lệnh:
sudo chgrp tên_nhóm tên_file2. Lỗi “invalid group”
Lỗi hệ thống không nhận diện được tên nhóm mà bạn đã nhập:
- Nguyên nhân: Nhóm chưa tồn tại trên hệ thống.
- Nhập sai tên nhóm (Linux có phân biệt chữ hoa và chữ thường).
- Cách kiểm tra: Xác minh danh sách các nhóm hiện có trên hệ thống bằng lệnh:
getent grouphoặccat /etc/group - Cách khắc phục: Nếu nhóm chưa tồn tại, hãy khởi tạo nhóm mới trước khi gán:
sudo groupadd groupname
Câu hỏi thường gặp
Lệnh chgrp và lệnh chown khác nhau như thế nào?
Lệnh chown (change owner) có thể thay đổi cả người sở hữu (user owner) và nhóm sở hữu (group owner) của file. Trong khi đó, lệnh chgrp chỉ có chức năng thay đổi nhóm sở hữu. Nếu bạn chỉ cần điều chỉnh quyền hạn nhóm mà không muốn ảnh hưởng đến người sở hữu file, chgrp là lựa chọn an toàn hơn.
Lệnh chgrp có làm thay đổi quyền đọc/ghi của file không?
Không. Lệnh chgrp chỉ thay đổi nhóm sở hữu file. Để thay đổi các quyền đọc (r), ghi (w) hoặc thực thi (x), bạn cần sử dụng lệnh chmod. Tuy nhiên, việc thay đổi group có thể gián tiếp ảnh hưởng đến việc ai có thể truy cập file dựa trên quyền hạn đã được gán cho group đó.
Nếu nhập sai tên group thì chuyện gì sẽ xảy ra?
Hệ thống sẽ báo lỗi invalid group và lệnh sẽ không được thực thi. Bạn nên kiểm tra lại danh sách các group đang tồn tại trên hệ thống bằng lệnh getent group để đảm bảo nhập đúng tên chính xác.
Lệnh chgrp là công cụ quan trọng giúp bạn quản lý group sở hữu file, phân quyền truy cập hiệu quả cho nhiều người dùng và tổ chức lại quyền hạn trong các dự án chung. Với khả năng thay đổi nhóm sở hữu cho file và thư mục một cách linh hoạt, bạn có thể phân quyền rõ ràng, giảm rủi ro lộ dữ liệu và giữ hệ thống bảo mật, gọn gàng và dễ kiểm soát hơn. Cảm ơn bạn đã theo dõi bài viết!




