Lenh chgrp trong linux

Trong Linux, mỗi tệp được liên kết với một chủ sở hữu và một nhóm và có quyền xác định người dùng nào có thể đọc, ghi hoặc thực thi tệp.

Bài viết này giải thích cách sử dụng lệnh chgrp để thay đổi quyền sở hữu nhóm của các tệp nhất định.

Nội dung chính

  • 1 Cú pháp lệnh
  • 2 Cách thay đổi quyền sở hữu nhóm tệp
  • 3 Cách thay đổi quyền sở hữu nhóm liên kết tượng trưng
  • 4 Cách thay đổi đệ quy quyền sở hữu nhóm
  • 5 Phần kết luận
    • 5.1 Share this:
    • 5.2 Like this:

Cú pháp lệnh

Các lệnh chgrp có dạng sau:

chgrp [OPTIONS] GROUP FILE..
  • GROUP, tên của nhóm mới hoặc ID nhóm (GID). GID dạng số phải được bắt đầu bằng ký hiệu +.
  • FILE.., tên của một hoặc nhiều tệp.

Không giống như chown lệnh cho phép bạn thay đổi người dùng và quyền sở hữu nhóm, chgrp chỉ thay đổi quyền sở hữu nhóm.

Để biết tệp thuộc về nhóm nào, hãy sử dụng lệnh ls -l.

Người dùng thông thường chỉ có thể thay đổi nhóm của tệp nếu họ sở hữu tệp và chỉ đối với một nhóm mà họ là thành viên. Người dùng quản trị có thể thay đổi quyền sở hữu nhóm của tất cả các tệp.

Cách thay đổi quyền sở hữu nhóm tệp

Để thay đổi quyền sở hữu nhóm của một tệp hoặc thư mục, hãy gọi lệnh chgrp theo sau là tên nhóm mới và tệp đích làm đối số.

Ví dụ, để thay đổi nhóm của tập tin filename để www-data bạn có thể chạy:

chgrp www-data filename

Nếu bạn chạy lệnh với một người dùng không có đặc quyền, bạn sẽ gặp lỗi “Operation not permitted”. Để loại bỏ thông báo lỗi, hãy gọi lệnh với tùy chọn -f. Theo mặc định, khi thành công, chgrp không tạo ra bất kỳ đầu ra nào và trả về 0.

Bạn cũng có thể chuyển nhiều tệp làm đối số cho lệnh chgrp:

chgrp www-data file1 file2 dir1

Sử dụng tùy chọn -v để nhận thông tin về các tệp đang được xử lý:

chgrp www-data file1 file2
changed group of 'file1' from nginx to www-data
group of 'file2' retained as www-data

Để chỉ in thông tin về những tệp mà nhóm thực sự thay đổi sử dụng -c thay vì -v.

ID nhóm số (GID) có thể được sử dụng thay cho tên người dùng. Ví dụ sau thay đổi quyền sở hữu nhóm của tệp thành một nhóm mới với GID là 1000:

chgrp +1000 filename

Cách thay đổi quyền sở hữu nhóm liên kết tượng trưng

Khi không hoạt động đệ quy, hành vi mặc định của lệnh chgrp là thay đổi quyền sở hữu nhóm của các mục tiêu liên kết tượng trưng, ​​không phải bản thân các liên kết tượng trưng .

Ví dụ: nếu bạn cố gắng thay đổi nhóm của liên kết tượng trưng symlink1 trỏ đến /opt/file1chgrp sẽ thay đổi quyền sở hữu của tệp hoặc thư mục mà liên kết biểu tượng trỏ đến:

chgrp www-data symlink1

Rất có thể thay vì thay đổi nhóm mục tiêu, bạn sẽ nhận được lỗi “cannot dereference ‘symlink1’: Permission denied”.

Lỗi xảy ra vì theo mặc định trên hầu hết các bản phân phối Linux, các liên kết tượng trưng được bảo vệ và bạn không thể thao tác trên các tệp đích. Tùy chọn này được chỉ định trong /proc/sys/fs/protected_symlinks1 có nghĩa là được bật và 0 tắt. Chúng tôi khuyên bạn không nên tắt tính năng bảo vệ liên kết biểu tượng.

Để thay đổi quyền sở hữu nhóm của chính liên kết biểu tượng, hãy sử dụng tùy chọn -h:

chgrp -h www-data symlink1

Cách thay đổi đệ quy quyền sở hữu nhóm

Để thay đổi một cách đệ quy quyền sở hữu nhóm của tất cả các tệp và thư mục trong một thư mục nhất định, hãy sử dụng -R.

Ví dụ: lệnh sau sẽ thay đổi quyền sở hữu của tất cả các tệp và thư mục trong thư mục /var/www thành nhóm www-data:

chgrp -R www-data /var/www

Khi tùy chọn đệ quy được chỉ định chgrp sẽ không đi qua các liên kết tượng trưng và sẽ không thực hiện thay đổi nào đối với các liên kết tượng trưng. Để thay đổi quyền sở hữu nhóm của các liên kết tượng trưng, ​​hãy chuyển tùy chọn -h:

chgrp -hR www-data /var/www

Các tùy chọn khác có thể được sử dụng khi thay đổi đệ quy quyền sở hữu nhóm là -H và -L.

Nếu đối số được truyền cho lệnh chgrp là một liên kết tượng trưng, tùy chọn -H sẽ khiến lệnh truyền qua nó. -L yêu cầu chgrp chuyển từng liên kết biểu tượng đến một thư mục gặp phải. Trong hầu hết các trường hợp, bạn không nên sử dụng các tùy chọn này vì bạn có thể làm rối hệ thống của mình hoặc tạo ra rủi ro bảo mật.

Phần kết luận

chgrp thay đổi quyền sở hữu nhóm của tệp, thư mục và liên kết tượng trưng.

Mặc dù bạn có thể sử dụng chown phổ biến hơn để thay đổi nhóm, chgrp có cú pháp đơn giản dễ nhớ.

Để biết thêm thông tin về lệnh chgrp, hãy truy cập trang chgrp man hoặc nhập man chgrp vào thiết bị đầu cuối của bạn.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.