Lệnh chown cho phép bạn thay đổi người sử dụng và / hoặc quyền sở hữu nhóm của một tập tin nhất định, thư mục, hoặc liên kết tượng trưng.

Trong Linux, tất cả các tệp được liên kết với chủ sở hữu và một nhóm và được chỉ định quyền truy cập quyền cho chủ sở hữu tệp, thành viên nhóm và những người khác.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng lệnh chown thông qua các ví dụ thực tế.

Cách sử dụng

Trước khi đi vào cách sử dụng lệnh chown, chúng ta hãy bắt đầu bằng cách xem lại cú pháp cơ bản.

Lệnh chown có dạng sau:

chown [OPTIONS] USER[:GROUP] FILE(s)

USER là tên người dùng hoặc ID người dùng (UID) của chủ sở hữu mới. GROUP là tên của nhóm mới hoặc ID nhóm (GID). FILE(s)là tên của một hoặc nhiều tệp, thư mục hoặc liên kết. ID số phải được đặt trước bằng +biểu tượng.

  • USER – Nếu chỉ người dùng được chỉ định, người dùng được chỉ định sẽ trở thành chủ sở hữu của các tệp đã cho, quyền sở hữu nhóm không bị thay đổi.
  • USER:– Khi tên người dùng được theo sau bởi dấu hai chấm :và tên nhóm không được cung cấp, người dùng sẽ trở thành chủ sở hữu của tệp và quyền sở hữu nhóm tệp được thay đổi thành nhóm đăng nhập của người dùng.
  • USER:GROUP – Nếu cả người dùng và nhóm đều được chỉ định (không có khoảng trống giữa họ), quyền sở hữu tệp của người dùng được thay đổi thành người dùng đã cho và quyền sở hữu nhóm được thay đổi thành nhóm đã cho.
  • :GROUP– Nếu Người dùng bị bỏ qua và nhóm có tiền tố là dấu hai chấm :, thì chỉ quyền sở hữu nhóm của các tệp được thay đổi thành nhóm đã cho.
  • :Nếu chỉ :đưa ra dấu hai chấm mà không chỉ định người dùng và nhóm, thì không có thay đổi nào được thực hiện.

Theo mặc định, khi thành công, chown không tạo ra bất kỳ đầu ra nào và trả về 0.

Sử dụng ls -l lệnh để tìm ra ai sở hữu tệp hoặc tệp thuộc nhóm nào:

ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
                |       |
                |       +-----------> Group
                +-------------------> Owner

Người dùng bình 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 chủ sở hữu tệp

Để thay đổi chủ sở hữu của tệp, hãy sử dụng lệnh chown theo sau là tên người dùng của chủ sở hữu mới và tệp đích làm đối số:

chown USER FILE

Ví dụ: lệnh sau sẽ thay đổi quyền sở hữu tệp có tên file1 thành chủ sở hữu mới có tên hocdevops:

chown hocdevops file1

Để thay đổi quyền sở hữu nhiều tệp hoặc thư mục, hãy chỉ định chúng dưới dạng danh sách được phân tách bằng dấu cách. Lệnh bên dưới thay đổi quyền sở hữu tệp có tên file1 và thư  mụcdir1 thành chủ sở hữu mới có tên hocdevops:

chown hocdevops file1 dir1

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

chown 1000 file2

Nếu chủ sở hữu số tồn tại dưới dạng tên người dùng, thì quyền sở hữu sẽ được chuyển sang tên người dùng. Để tránh tiền tố này, ID có +:

chown 1000 file2

Cách thay đổi chủ sở hữu và nhóm tệp

Để thay đổi cả chủ sở hữu và nhóm của tệp, hãy sử dụng lệnh chown theo sau bởi chủ sở hữu và nhóm mới được phân tách bằng dấu hai chấm ( : ) không có dấu cách xen vào và tệp đích.

chown USER:GROUP FILE

Lệnh sau sẽ thay đổi quyền sở hữu tệp có tên file1 thành chủ sở hữu mới có tên hocdevops nhóm users:

chown hocdevops file1

Nếu bạn bỏ qua tên nhóm sau dấu hai chấm ( : ), nhóm của tệp sẽ được thay đổi thành nhóm đăng nhập của người dùng được chỉ định:

chown hocdevops: file1

Cách thay đổi nhóm tệp

Để chỉ thay đổi nhóm của tệp, hãy sử dụng lệnh chown theo sau bởi dấu hai chấm ( : ) và tên nhóm mới (không có khoảng cách giữa chúng) và tệp đích làm đối số:

chown :GROUP FILE

Lệnh sau sẽ thay đổi nhóm sở hữu của một tệp được đặt tên file1 thành www-data:

chown :www-data file1

Một lệnh khác mà bạn có thể sử dụng để thay đổi quyền sở hữu nhóm của tệp là chgrp .

Khi tùy chọn đệ quy không được sử dụng, chown sẽ thay đổi quyền sở hữu nhóm của các tệp mà các liên kết tượng trưng trỏ tới, chứ 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 chủ sở hữu và nhóm của liên kết tượng trưng symlink1trỏ đến /var/www/file1chownsẽ 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:

chown www-data: symlink1

Rất có thể thay vì thay đổi quyền sở hữu 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:

chown -h www-data symlink1

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

Để hoạt động đệ quy trên tất cả các tệp và thư mục trong thư mục đã cho, hãy sử dụng tùy chọn -R--recursive):

chown -R USER:GROUP DIRECTORY

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

chown -R www-data: /var/www

Nếu thư mục chứa các liên kết tượng trưng, ​​hãy chuyển tùy chọn -h:

chown -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 thư mục là -H và -L.

Nếu đối số được truyền cho lệnh chown là một liên kết tượng trưng trỏ đến một thư mục, thì tùy chọn -H sẽ khiến lệnh đi qua nó. -L yêu cầu chown chuyển từng liên kết tượng trưng đến một thư mục gặp phải. Thông thường, 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.

Sử dụng Tệp Tham chiếu

Các tùy chọn --reference=ref_file cho phép bạn thay đổi người sử dụng và nhóm sở hữu của các tập tin ban cho được giống như những file tài liệu tham khảo quy định ( ref_file ). Nếu tệp tham chiếu là một liên kết tượng trưng chown sẽ sử dụng người dùng và nhóm của tệp đích.

chown --reference=REF_FILE FILE

Ví dụ: lệnh sau sẽ chỉ định người dùng và quyền sở hữu nhóm file1 đối với file2

chown --reference=file1 file2

Phần kết luận

chown là một tiện ích dòng lệnh Linux / UNIX để thay đổi quyền sở hữu nhóm và / hoặc người dùng của tệp.

Để tìm hiểu thêm về chown, hãy truy cập trang chown man hoặc nhập man chown vào terminal 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.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments