Làm thế nào để bạn thay đổi chủ sở hữu của một tập tin?

Chúng tôi biết rằng Linux là một hệ điều hành nhiều người dùng nên mọi tệp hoặc thư mục đều thuộc về một chủ sở hữu và một nhóm

Để thay đổi quyền sở hữu tệp hoặc thư mục, chúng tôi sử dụng lệnh chown trong hệ thống Linux. Lệnh này cũng có trong hệ điều hành IBM i. Lệnh chgrp cũng được sử dụng để chỉ thay đổi quyền sở hữu nhóm của tệp trong hệ thống Linux

cú pháp

Cú pháp chung của lệnh chown như sau

chown [OPTION].. [OWNER] [: [GROUP]] FILE...
chown [OPTION].. --reference=RFILE FILE...

Một mô tả ngắn gọn về các tùy chọn có sẵn trong lệnh chown -

Sr. Không. tùy chọn & Mô tả1-c, --changes
Đưa ra chẩn đoán cho tất cả các tệp đã thực sự thay đổi.
2. -f, --silent, --quite
Nó chặn hầu hết các thông báo lỗi.
3-v, --verbose
Đưa ra chẩn đoán cho tất cả các tệp được xử lý.
4-R, --recursive
Nó thay đổi các tệp và thư mục theo cách đệ quy.
5--help
Hiển thị thông báo trợ giúp rồi thoát.
6--version
Nó cung cấp thông tin về phiên bản rồi thoát.

Kiểm tra quyền sở hữu

Để kiểm tra quyền sở hữu của một tập tin trong hệ thống Linux, chúng ta sử dụng lệnh ls -l như hình bên dưới

$ ls -l 

Thay đổi quyền sở hữu của một tập tin

Để thay đổi quyền sở hữu một tệp trong hệ thống Linux, chúng tôi cần có quyền quản trị hoặc đặc quyền sudo

Cú pháp chung để thay đổi quyền sở hữu tệp như sau

$ sudo chown  

Ở đây, chúng tôi sẽ thay đổi quyền sở hữu của tệp 'tệp. txt’ Vikash sang Gautam bằng lệnh chown

Đầu tiên, chúng tôi sẽ kiểm tra quyền sở hữu của 'tệp. txt’ bằng lệnh bên dưới

vikash@tutorialspoint:~/shadow$ ls -l file.txt
-rw-rw-r-- 1 vikash vikash 34 Jan 11 20:59 file.txt
vikash@tutorialspoint:~/shadow$

Chúng ta có thể thấy rằng chủ sở hữu của 'tệp. txt' là vikash và quyền sở hữu nhóm của 'tệp. txt' là vikash. Để thay đổi quyền sở hữu, chúng tôi sẽ thực hiện lệnh như hình dưới đây

vikash@tutorialspoint:~/shadow$ sudo chown gautam file.txt
[sudo] password for vikash:
vikash@tutorialspoint:~/shadow$

Sau khi thay đổi quyền sở hữu của tệp, chúng tôi sẽ kiểm tra lại quyền sở hữu của tệp để đảm bảo rằng quyền sở hữu đó có bị thay đổi hay không

vikash@tutorialspoint:~/shadow$ ls -l file.txt
-rw-rw-r-- 1 gautam vikash 34 Jan 11 20:59 file.txt
vikash@tutorialspoint:~/shadow$

Để kiểm tra thêm thông tin và các tùy chọn có sẵn trong lệnh chown, chúng ta sử dụng tùy chọn --help với lệnh chown như sau

$ chown --help

Sự kết luận. Trong bài viết này, chúng ta đã học cách thay đổi quyền sở hữu tệp bằng lệnh chown trong hệ điều hành Linux với các tùy chọn có sẵn và các ví dụ phù hợp. Để chỉ thay đổi quyền sở hữu nhóm của tệp, chúng tôi sử dụng lệnh chgrp trong hệ thống Linux

Lệnh

ls -l
7 thay đổi quyền sở hữu của người dùng đối với tệp, thư mục hoặc liên kết trong Linux. Mỗi tệp được liên kết với một người dùng hoặc nhóm sở hữu. Điều quan trọng là phải định cấu hình quyền truy cập tệp và thư mục đúng cách

Trong hướng dẫn này, hãy tìm hiểu cách sử dụng lệnh chown của Linux với các ví dụ được cung cấp

How to Use the chown Command on Linux

điều kiện tiên quyết

  • Hệ thống tương tự Linux hoặc UNIX
  • Truy cập vào một thiết bị đầu cuối/dòng lệnh
  • Người dùng có đặc quyền sudo để thay đổi quyền sở hữu. Hãy nhớ chạy các lệnh với sudo để thực thi chúng đúng cách

Cú pháp lệnh Chown Linux

Cú pháp lệnh chown cơ bản bao gồm một vài phân đoạn. Tệp trợ giúp hiển thị định dạng sau

________số 8
  • [OPTIONS] – lệnh có thể được sử dụng có hoặc không có tùy chọn bổ sung
  • [USER] – tên người dùng hoặc ID người dùng dạng số của chủ sở hữu mới của tệp
  • [. ] – sử dụng dấu hai chấm khi thay đổi một nhóm tệp
  • [GROUP] – thay đổi quyền sở hữu nhóm của một tệp là tùy chọn
  • TẬP TIN – tập tin đích

Quyền siêu người dùng là cần thiết để thực thi lệnh chown

Trong hướng dẫn này, chúng tôi đã thử nghiệm các ví dụ lệnh với phiên bản chown 8. 28 trong Ubuntu 18. 04. 2 LTS

Để kiểm tra phiên bản chown trên máy của bạn, hãy nhập

chown --version

Đầu ra sẽ trông giống như thế này

Determine version of chown in Linux

Cách kiểm tra quyền sở hữu tệp trong Linux

Trước tiên, bạn cần biết chủ sở hữu hoặc nhóm tệp gốc trước khi thực hiện thay đổi quyền sở hữu bằng lệnh chown

Để kiểm tra nhóm hoặc quyền sở hữu các tệp và thư mục Linux ở vị trí hiện tại, hãy chạy lệnh sau

ls -l

Một ví dụ đầu ra của lệnh

ls -l
8 trông như thế này

checking ownership of a file in linux

Cách thay đổi chủ sở hữu tệp

Thay đổi chủ sở hữu tệp bằng chown yêu cầu bạn chỉ định chủ sở hữu mới và tệp. Định dạng của lệnh là

$ ls -l 
2

Lệnh sau thay đổi quyền sở hữu của một mẫu tệp từ gốc sang kiểm tra người dùng

$ ls -l 
3

Change the owner of the file with chown command.

Sử dụng cùng một định dạng để thay đổi quyền sở hữu cho cả tệp và thư mục

Thay đổi chủ sở hữu tệp bằng UID

Thay vì tên người dùng, bạn có thể chỉ định ID người dùng để thay đổi quyền sở hữu tệp

Ví dụ

$ ls -l 
4

Đảm bảo không có người dùng nào trùng tên với UID số. Nếu có, lệnh chown ưu tiên cho tên người dùng, không phải UID

Ghi chú. Để kiểm tra ID của người dùng, hãy chạy

ls -l
9 từ thiết bị đầu cuối

Thay đổi quyền sở hữu nhiều tệp Linux

Liệt kê tên tệp mục tiêu sau người dùng mới để thay đổi quyền sở hữu cho nhiều tệp. Sử dụng khoảng cách đơn giữa các tên tệp

Trong ví dụ sau, root sẽ là chủ sở hữu mới của tệp sample2 và sample3

$ ls -l 
6

Kết hợp tên tệp và tên thư mục để thay đổi quyền sở hữu của chúng bằng một lệnh. Ví dụ

$ ls -l 
7

Đừng quên rằng các lệnh có phân biệt chữ hoa chữ thường

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

Với chown, bạn có thể thay đổi nhóm cho tệp hoặc thư mục mà không cần thay đổi người dùng sở hữu. Kết quả giống như sử dụng lệnh chgrp

Chạy lệnh

ls -l
7 bằng dấu hai chấm và tên nhóm

$ ls -l 
9

Ví dụ sau thay đổi nhóm của tệp sample3 từ grouptest thành group3

$ sudo chown  
0

example of Changing group of a file or directory with chown command

Liệt kê nhiều tên tệp hoặc thư mục để thực hiện thay đổi hàng loạt

Thay đổi nhóm của tệp bằng GID

Tương tự như UID, sử dụng ID nhóm (GID) thay vì tên nhóm để thay đổi nhóm của tệp

Ví dụ

chown --version
0

Thay đổi chủ sở hữu và nhóm

Để chỉ định chủ sở hữu mới của tệp và thay đổi nhóm của tệp cùng lúc, hãy chạy lệnh

ls -l
7 ở định dạng này

chown --version
1

Do đó, để đặt linuxuser làm chủ sở hữu mới và group2 làm nhóm mới của tệp sample2

chown --version
2

Hãy nhớ rằng không có khoảng trắng trước hoặc sau dấu hai chấm

Thay đổi Nhóm thành Nhóm Đăng nhập Người dùng

Lệnh chown gán nhóm đăng nhập của chủ sở hữu cho tệp khi không có nhóm nào được chỉ định

Để làm như vậy, hãy xác định một người dùng mới theo sau là dấu hai chấm, dấu cách và tệp đích

chown --version
3

Ví dụ sau thay đổi quyền sở hữu nhóm thành nhóm đăng nhập của linuxuser

chown --version
4

Chuyển quyền sở hữu và cài đặt nhóm từ tệp này sang tệp khác

Thay vì thay đổi quyền sở hữu cho một người dùng cụ thể, bạn có thể sử dụng chủ sở hữu và nhóm của tệp tham chiếu

Thêm tùy chọn

$ ls -l 
22 vào lệnh chown để sao chép cài đặt từ tệp này sang tệp khác

chown --version
5

Nhớ gõ đúng tên file để tránh báo lỗi

Transfer ownership and gropu settings between files with chown command.

Kiểm tra chủ sở hữu và nhóm trước khi thực hiện thay đổi

Tùy chọn

ls -l
7 lệnh
$ ls -l 
24 cho phép bạn xác minh chủ sở hữu và nhóm hiện tại, sau đó áp dụng các thay đổi

Cú pháp chown để kiểm tra cả người dùng và nhóm trông như thế này

chown --version
6

Ví dụ dưới đây cho thấy trước tiên chúng tôi đã xác minh quyền sở hữu và nhóm của tệp sample3

chown --version
7

Sau đó, chown đã đổi chủ sở hữu thành linuxuser và nhóm thành nhóm3

Chỉ kiểm tra chủ sở hữu

Tùy chọn

$ ls -l 
24 có thể được sử dụng để chỉ xác thực người dùng hiện tại của tệp

chown --version
8

Ví dụ

chown --version
9

Chỉ kiểm tra nhóm

Tương tự như phần trước, bạn chỉ có thể xác thực nhóm của tệp bằng tùy chọn

$ ls -l 
24

ls -l
0

Đây là một ví dụ mà chúng tôi đã xác minh nhóm hiện tại trước khi thay đổi nó

ls -l
1

Hãy nhớ sử dụng dấu hai chấm cho cả hai tên nhóm để tránh thông báo lỗi

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

Lệnh chown cho phép thay đổi quyền sở hữu của tất cả các tệp và thư mục con trong một thư mục được chỉ định. Thêm tùy chọn

$ ls -l 
27 vào lệnh để làm như vậy

ls -l
2

Trong ví dụ sau, chúng tôi sẽ thay đổi đệ quy chủ sở hữu và nhóm cho tất cả các tệp và thư mục trong Dir1

ls -l
3

Lệnh Chown và Liên kết tượng trưng

Để thay đổi chủ sở hữu của liên kết tượng trưng, ​​hãy sử dụng tùy chọn

$ ls -l 
28. Nếu không, quyền sở hữu của tệp được liên kết sẽ bị thay đổi

Hình ảnh sau đây cho thấy các liên kết tượng trưng hoạt động như thế nào khi bỏ qua

$ ls -l 
28

Change owner of symbolic link command.

Chủ sở hữu và nhóm của liên kết tượng trưng vẫn còn nguyên vẹn. Thay vào đó, chủ sở hữu và nhóm của tệp văn bản đã thay đổi

Để đẩy các thay đổi vào liên kết, hãy chạy lệnh chown với cờ

$ ls -l 
28

ls -l
4

Trong ví dụ sau, chúng tôi đã thay đổi chủ sở hữu và nhóm của một liên kết tượng trưng

Change the owner of the symbolic ling group.

Hiển thị chi tiết quy trình lệnh Chown

Theo mặc định, thiết bị đầu cuối không hiển thị thông tin quá trình chown. Để xem điều gì xảy ra dưới mui xe, hãy sử dụng một trong hai cờ dòng lệnh

  • Tùy chọn –v tạo chi tiết quy trình ngay cả khi quyền sở hữu vẫn giữ nguyên
  • Tùy chọn –c chỉ hiển thị thông tin đầu ra khi chủ sở hữu hoặc nhóm của tệp đích thay đổi

Ví dụ: nếu chúng tôi chỉ định chủ sở hữu hiện tại là chủ sở hữu mới của tệp

ls -l
5

Thiết bị đầu cuối tạo ra đầu ra sau

Specify chown process details with this command.

Chuyển từ

$ ls -l 
31 sang
$ ls -l 
32 và sẽ không có thông báo nào trong trường hợp này. Điều này xảy ra vì không có thay đổi về chủ sở hữu hoặc nhóm

Thông tin đặc biệt hữu ích với lệnh chown đệ quy

Recursive chown command issued in Terminal window.

Trong ví dụ này, đầu ra liệt kê tất cả các đối tượng bị ảnh hưởng sau khi chạy lệnh

Loại bỏ lỗi lệnh Chown

Để tránh nhìn thấy các thông báo lỗi tiềm ẩn khi chạy lệnh chown, hãy sử dụng tùy chọn

$ ls -l 
33

ls -l
6

Ví dụ dưới đây hiển thị thông báo lỗi cho một tệp hoặc thư mục không tồn tại

List chown errors with this command.

Việc thêm cờ

$ ls -l 
33 sẽ chặn hầu hết các thông báo lỗi. Tuy nhiên, nếu bạn chỉ định tên người dùng không hợp lệ, thông báo lỗi sẽ xuất hiện