Linux thay đổi quyền với file hoặc folder với lệnh chown

0
664

Lệnh Chown trong Linux (Quyền sở hữu)

Lệnh chown cho phép bạn thay đổi quyền sở hữu của người dùng và nhóm đối với một tệp, thư mục hoặc liên kết soft link.

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

Chown Command in Linux
Chown Command in Linux – ảnh minh họa

Trong bài viết hướng dẫn này, tôi sẽ chỉ dẫn cho bạn cách sử dụng lệnh chown thông qua các ví dụ thực tế.

Sử dụng lệnh chown như thế nào?

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

Các biểu thức 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). (Các) TỆP 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 bắt đầu bằng ký hiệu +.

  • 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 các 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 được chỉ định (không có khoảng cách 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 bắt đầu bằng dấu hai chấm :, thì chỉ quyền sở hữu nhóm đối với các tệp được thay đổi thành nhóm đã cho.
  • : Nếu chỉ có 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 lệnh ls -l để tìm ra ai sở hữu tệp hoặc tệp đó thuộc về 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ỉ với 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 tin

Để 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 của tệp có tên file1 thành chủ sở hữu mới có tên linuxize:

chown linuxize file1

Để thay đổi quyền sở hữu của 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 của tệp có tên file1 và thư mục dir1 thành chủ sở hữu mới có tên linuxize:

chown linuxize file1 dir1

ID người dùng 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 của tệp có tên file2 thành chủ sở hữu mới với UID là 1000:

chown 1000 file2

Nếu một 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 của tệp tin

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

chown USER:GROUP FILE

Lệnh sau sẽ thay đổi quyền sở hữu của tệp có tên file1 thành chủ sở hữu mới có tên linuxize và nhóm người dùng:

chown linuxize:users 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 linuxize: file1

Cách thay đổi nhóm của tệp tin

Để chỉ thay đổi nhóm của tệp, hãy sử dụng lệnh chown theo sau là 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 tệp có tên tệp1 thành www-data:

chown :www-data file1

Xem thêm ví dụ: https://stackoverflow.com/questions/5246114/php-mkdir-permission-denied-problem

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

Khi tùy chọn đệ quy không được sử dụng, lệnh 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 symlink1 trỏ đến /var/www/file1, chown sẽ thay đổi quyền sở hữu tệp hoặc thư mục mà liên kết tượng trưng trỏ tới:

chown www-data: symlink1

Rất có thể thay vì thay đổi quyền sở hữu mục tiêu, bạn sẽ gặp lỗi “không thể hủy đăng ký ‘symlink1’: Quyền bị từ chối”.

Lỗi xảy ra do theo mặc định trên hầu hết các liên kết tượng trưng của bản phân phối Linux đượ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_symlinks. 1 có nghĩa là đã 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 tượng trưng.

Để thay đổi quyền sở hữu nhóm của chính liên kết tượng trư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 tin

Để thao tác đệ 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 /var/www thành chủ sở hữu và nhóm mới 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, tùy chọn -H sẽ khiến lệnh đi qua nó. -L yêu cầu chown duyệt qua 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 hỏng 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

Tùy chọn –reference=ref_file cho phép bạn thay đổi quyền sở hữu của người dùng và nhóm đối với các tệp đã cho giống với quyền sở hữu của tệp tham chiếu đã chỉ đị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ẽ gán quyền sở hữu nhóm và người dùng của tệp1(file1) cho tệp2(file2)

chown --reference=file1 file2

Kết luận

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

Để tìm hiểu thêm về lệnh chown, hãy truy cập trang man chown hoặc nhập man chown trong 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 nhận xét.

nhantam
Lập trình web app tại Panpic

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

+ 87 = 95