NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
27/09/2024
Lượt xem

Lệnh chgrp trong Linux – Cách quản lý quyền truy cập file qua 7 ví dụ thực tế

27/09/2024
14 phút đọc
Lượt xem

Đánh giá

Lệnh chgrp là một công cụ quản lý nhóm giúp bạn dễ dàng quản lý quyền truy cập file và thư mục bằng cách thay đổi nhóm sở hữu. Bài viết này của Vietnix sẽ hướng dẫn bạn sử dụng lệnh chgrp qua các ví dụ thực tế, từ đó giúp bạn kiểm soát chi tiết quyền truy cập, phân quyền hiệu quả và nâng cao tính bảo mật cho hệ thống Linux của mình.

Lệnh chgrp trong Linux là gì?

Lệnh chgrp trong Linux (viết tắt của change group) là lệnh cho phép bạn quản lý quyền truy cập file và thư mục bằng cách thay đổi nhóm sở hữu của cả 2. Việc thay đổi nhóm sở hữu sẽ ảnh hưởng trực tiếp đến quyền hạn của người dùng đối với file/thư mục bị thay đổi.

Lệnh chgrp trong Linux
Lệnh chgrp trong Linux

Cú pháp của lệnh chgrp trong Linux khá đơn giản như sau:

chgrp [OPTION]... [GROUP_NAME] [DIRECTORY/FILE_NAME]...

iconLưu ý

  • Để sử dụng lệnh chgrp, bạn cần đăng nhập với quyền root hoặc sử dụng lệnh sudo trước mỗi lệnh chgrp.
  • Trong cú pháp trên, OPTION, GROUP_NAMEDIRECTORY/FILE_NAME được đặt trong dấu ngoặc vuông [ ], có nghĩa là không bắt buộc và dấu ba chấm sau dấu ngoặc vuông cho phép sử dụng nhiều tùy chọn và nhiều thư mục/file sau lệnh chgrp.

10 tùy chọn sử dụng lệnh chgrp

Lệnh chgrp trong Linux cung cấp nhiều tùy chọn hữu ích giúp bạn tùy chỉnh hoạt động của lệnh. Dưới đây là một số tùy chọn thường được sử dụng:

Tuỳ chọnMô tả
-c, –changesHiển thị thông báo chi tiết chỉ khi có thay đổi được thực hiện (tương tự như -v nhưng chỉ báo cáo khi có thay đổi).
-f, –silent, –quietẨn thông báo lỗi.
-v, –verboseHiển thị thông báo chi tiết cho mỗi file/thư mục được xử lý.
–dereferenceThay đổi nhóm sở hữu của file/thư mục mà liên kết tượng trưng (symbolic link) trỏ đến (hành vi mặc định), thay vì thay đổi nhóm sở hữu của chính liên kết tượng trưng đó.
–no-preserve-rootKhông xử lý đặc biệt cho thư mục gốc / (hành vi mặc định).
–preserve-rootKhông thực hiện đệ quy trên thư mục gốc /.
–reference=RFILESử dụng nhóm sở hữu của RFILE thay vì chỉ định trực tiếp GROUP.
-R, –recursiveThực hiện thay đổi nhóm sở hữu cho tất cả các file/thư mục con (đệ quy).
–versionHiển thị phiên bản của chương trình chgrp.
–helpHiển thị thông tin trợ giúp về lệnh chgrp.

iconLưu ý

    • Lệnh và các tùy chọn trong Linux phân biệt chữ hoa chữ thường, nên hãy nhập chính xác.

    • Để xem danh sách đầy đủ các tùy chọn và chi tiết về cách sử dụng, bạn có thể tham khảo trang trợ giúp (man page) của lệnh chgrp bằng lệnh man: man chgrp

Ví dụ 1: Thay đổi nhóm sở hữu của một thư mục hoặc file

Để thay đổi nhóm sở hữu của thư mục “mydir” thành “mygrp”, bạn có thể làm theo các bước sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Bạn chạy lệnh ls để xem thông tin chi tiết về thư mục “mydir”, bao gồm cả nhóm sở hữu hiện tại:

ls -l | grep mydir

Bước 3: Bạn tiếp tục chạy lệnh sudo theo cú pháp sau và nhấn Enter để thay đổi nhóm sở hữu của thư mục “mydir” thành “mygrp“:

sudo chgrp mygrp mydir

Bước 4: Nhập mật khẩu tài khoản người dùng của bạn khi được yêu cầu để cấp quyền sudo và nhấn Enter.

Bước 5: Chạy lại lệnh ls -l | grep mydir để kiểm tra xem nhóm sở hữu của thư mục “mydir” đã được thay đổi thành “mygrp” hay chưa.

Kết quả: Sau khi thực hiện các bước trên, bạn sẽ thấy nhóm sở hữu của thư mục “mydir” đã được thay đổi từ “amdadul” thành “mygrp”.

nhóm sở hữu của thư mục "mydir" đã được thay đổi
Nhóm sở hữu của thư mục “mydir” đã được thay đổi

iconLưu ý

Bạn có thể thay đổi nhóm sở hữu của file theo cách tương tự như với thư mục.

Ví dụ 2: Thay đổi nhóm sở hữu đệ quy bằng lệnh chgrp

Trong ví dụ này, để thay đổi nhóm sở hữu của thư mục “mydir1” và tất cả nội dung bên trong thành “mygrp”, bạn có thể sử dụng lệnh chgrp với tùy chọn -R hoặc --recursive. Hãy àm theo các bước sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Bạn chạy lệnh tree theo cú pháp và nhấn Enter để xem nhóm sở hữu hiện tại của thư mục “mydir1” và nội dung:

tree -g mydir1
xem nhóm sở hữu hiện tại của thư mục "mydir1"
Xem nhóm sở hữu hiện tại của thư mục “mydir1”

Bước 3: Tiếp theo, bạn chạy lệnh sau và nhấn Enter để thay đổi nhóm sở hữu của “mydir1” và tất cả nội dung bên trong thành “mygrp”:

sudo chgrp -R mygrp mydir1

Bước 4: Nhập mật khẩu của bạn khi được yêu cầu và nhấn Enter.

Bước 5: Bạn chạy lại lệnh tree -g mydir1 để kiểm tra xem nhóm sở hữu đã được thay đổi chưa.

Kết quả: Sau khi thực hiện các bước trên, nhóm sở hữu của thư mục “mydir1” và tất cả nội dung bên trong sẽ được thay đổi thành “mygrp”.

nhóm sở hữu của thư mục "mydir1" và tất cả nội dung bên trong được thay đổi
Nhóm sở hữu của thư mục “mydir1” và tất cả nội dung bên trong sẽ được thay đổi

Ví dụ 3: Thay đổi nhóm sở hữu theo file/thư mục tham chiếu

Bạn có thể sử dụng lệnh chgrp kết hợp với tùy chọn -R (đệ quy) và --reference để thay đổi nhóm sở hữu của một thư mục và tất cả nội dung bên trong dựa theo nhóm sở hữu của một file/thư mục khác.

Ví dụ, để thay đổi nhóm sở hữu của thư mục “mydir2” giống với nhóm sở hữu của thư mục “mydir1”, bạn có thể làm theo các bước sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Bạn chạy lệnh sau để xem nhóm sở hữu hiện tại của cả hai thư mục “mydir1” và “mydir2”:

tree -g mydir1 mydir2
Xem nhóm sở hữu hiện tại
Xem nhóm sở hữu hiện tại

Bước 3: Bạn chạy lệnh sau để thay đổi nhóm sở hữu của “mydir2” giống với “mydir1”:

sudo chgrp -R --reference=mydir1 mydir2

Bước 4: Nhập mật khẩu của bạn khi được yêu cầu và nhấn Enter.

Bước 5: Chạy lại lệnh tree -g mydir1 mydir2 để kiểm tra xem nhóm sở hữu của “mydir2” và nội dung bên trong đã được thay đổi giống với “mydir1” hay chưa.

Kết quả: Sau khi thực hiện các bước trên, nhóm sở hữu của thư mục “mydir2” và tất cả nội dung bên trong sẽ được thay đổi giống với nhóm sở hữu của thư mục “mydir1”.

Nhóm sở hữu của thư mục "mydir2" và tất cả nội dung bên trong sẽ được thay đổi giống với nhóm sở hữu của thư mục "mydir1
Nhóm sở hữu của thư mục “mydir2” và tất cả nội dung bên trong sẽ được thay đổi giống với nhóm sở hữu của thư mục “mydir1

Ví dụ 4: Hiển thị chi tiết quá trình thực thi của lệnh chgrp trong Linux

Để hiển thị chi tiết quá trình thực thi của lệnh chgrp, bạn có thể sử dụng tùy chọn -v (viết tắt của “verbose”). Tùy chọn này sẽ hiển thị danh sách các file và thư mục đang được xử lý trong quá trình thực thi lệnh.

Ví dụ, để thay đổi nhóm sở hữu của thư mục “mydir3” thành “mygrp” và hiển thị chi tiết quá trình thực thi, bạn có thể làm theo các bước sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Chạy lệnh sau để kiểm tra thông tin của thư mục “mydir3”:

ls -l |grep mydir3

Bước 3: Chạy lệnh sau để thay đổi nhóm sở hữu và hiển thị chi tiết quá trình thực thi:

sudo chgrp -v mygrp mydir3

Bước 4: Nhập mật khẩu của bạn khi được yêu cầu và nhấn Enter.

Bước 5: Chạy lại lệnh ls -l | grep mydir3 để kiểm tra xem nhóm sở hữu đã được thay đổi hay chưa.

Kết quả: Bạn sẽ thấy thông tin chi tiết về quá trình thực thi lệnh chgrp, bao gồm danh sách các file và thư mục được xử lý, kết quả cuối cùng là nhóm sở hữu của “mydir3” đã được thay đổi thành “mygrp”.

Kết quả hiển thị quá trình thực thi lệnh
Kết quả hiển thị quá trình thực thi lệnh

Ví dụ 5: Ẩn thông báo lỗi của lệnh chgrp

Khi sử dụng lệnh chgrp trên Linux, bạn có thể gặp lỗi. Để ẩn đi những lỗi này, bạn có thể sử dụng tùy chọn -f. Tùy chọn này sẽ giúp ngăn chặn các thông báo lỗi xuất hiện.

Trong ví dụ này, Chúng ta sẽ cố gắng thay đổi quyền sở hữu nhóm của thư mục “mydir5” – Một thư mục không tồn tại trên hệ thống, chúng ta sẽ sử dụng tùy chọn -f để ẩn đi thông báo lỗi. Các bước thực hiện như sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Chạy lệnh sau:

sudo chgrp mygrp mydir5 

Lệnh này sẽ báo lỗi vì “mydir5” không tồn tại.

Bước 3: Nhập mật khẩu của bạn khi được yêu cầu và nhấn Enter.

Bước 4: Chạy lệnh sau để ẩn thông báo lỗi:

sudo chgrp -f mygrp mydir5

Kết quả: Trong hình bên dưới, bạn có thể thấy rằng thông báo lỗi đã được ẩn.

Thông báo lỗi đã ẩn
Thông báo lỗi đã ẩn

Ví dụ 6: Chỉ hiển thị thông báo khi có thay đổi

Để hiển thị thông tin về việc thực thi lệnh chỉ khi có thay đổi xảy ra, bạn có thể sử dụng tùy chọn -c hoặc --changes.

Trong ví dụ này, chúng ta sẽ thử thay đổi quyền sở hữu nhóm của thư mục “mydir4” thành nhóm “mygrp” và chỉ hiển thị thông báo khi có thay đổi. Các bước thực hiện như sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Chạy lệnh sau:

sudo chgrp -c -R mygrp mydir4

Bước 3: Nhập mật khẩu của bạn khi được yêu cầu và nhấn Enter.

Kết quả: Trong hình bên dưới, bạn có thể thấy mọi thay đổi do thực thi lệnh chgrp được hiển thị.

Kết quả hiển thị những thay đổi
Kết quả hiển thị những thay đổi

Ví dụ 7: Thay đổi nhóm sở hữu của file liên kết tượng trưng

Lệnh chgrp trong Linux cho phép bạn thay đổi nhóm sở hữu của file được liên kết bởi một liên kết tượng trưng (file gốc) mà không thay đổi nhóm sở hữu của chính liên kết tượng trưng.

Liên kết tượng trưng, còn được gọi là symlink hoặc soft link, là một loại file đặc biệt trong hệ thống file Linux trỏ đến một file hoặc thư mục khác. Nói cách khác, liên kết tượng trưng hoạt động như một lối tắt đến file hoặc thư mục gốc.

Để tạo liên kết tượng trưng, bạn có thể sử dụng lệnh ln với cú pháp sau:

ln -s File_name Symbolic_Link_name

Ví dụ, để tạo liên kết tượng trưng “symbolic_link” trỏ đến file “file1”, bạn có thể chạy lệnh:

ln -s file1 symbolic_link
Tạo liên kết tượng trưng
Tạo liên kết tượng trưng

Để thay đổi nhóm sở hữu của file gốc (trong ví dụ này là file1) mà không ảnh hưởng đến liên kết tượng trưng, bạn có thể sử dụng tùy chọn --dereference với lệnh chgrp. Các bước thực hiện như sau:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Bạn chạy lệnh sau: 

sudo chgrp --dereference mygrp symbolic_link

Bước 3: Nhập mật khẩu của bạn khi được yêu cầu và nhấn Enter.

Bước 4: Chạy lệnh sau để kiểm tra nhóm sở hữu của file gốc (file1):

ls -l | grep file1

Kết quả: Bạn sẽ thấy rằng nhóm sở hữu của file gốc (file1) đã được thay đổi thành “mygrp”, trong khi nhóm sở hữu của liên kết tượng trưng (symbolic_link) vẫn giữ nguyên.

Kết quả thay đổi nhóm sở hữu của file liên kết tượng trưng
Kết quả thay đổi nhóm sở hữu của file liên kết tượng trưng

Câu hỏi thường gặp

Có thể sử dụng lệnh chgrp để thay đổi nhóm sở hữu của một tệp hoặc thư mục thành nhóm của người dùng hiện tại không?

Có thể. Bạn có thể sử dụng lệnh để thực hiện thay đổi theo cú pháp:
chgrp $(id -gn) file.txt

Có thể sử dụng lệnh chgrp để thay đổi nhóm sở hữu của nhiều tệp hoặc thư mục cùng một lúc không?

Có Để thay đổi nhóm sở hữu, bạn chỉ cần liệt kê các tệp/thư mục đó sau tên nhóm.

Lời kết

Bài viết trên của Vietnix đã giới thiệu về lệnh chgrp trong Linux và các ứng dụng thực tế trong việc quản lý quyền truy cập và nhóm sở hữu của các file/thư mục. Với kiến thức này, bạn có thể sử dụng lệnh chgrp một cách hiệu quả để bảo mật và quản lý hệ thống của mình. 

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG