Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

$ touch file-1.txt
$ ls -l file-1.txt 

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Kiểm tra quyền sở hữu tệp trong Linux

Trong đầu ra trên, chúng ta có thể thấy rằng tập tin thuộc sở hữu của người dùng tecmint và nhóm tecmint. Thông tin này được biểu thị bởi cột thứ ba và cột thứ tư tương ứng.

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

Lệnh chown cho phép chúng ta thay đổi chủ sở hữu của tập tin. Hãy xem cách sử dụng của nó bằng cách đặt người dùng narendra làm chủ sở hữu của tập tin:

$ sudo chown narendra file-1.txt

Bây giờ, hãy xác minh rằng chủ sở hữu của tập tin đã được thay đổi:

$ ls -l file-1.txt 

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

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

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

Tương tự với người dùng, chúng ta cũng có thể thay đổi chủ sở hữu nhóm của tập tin bằng cách sử dụng lệnh chown trong Linux. Vì vậy, hãy đặt chủ sở hữu nhóm của tập tin là nhóm - narendra:

$ sudo chown :narendra file-1.txt

Chúng ta cần chú ý rằng khi thay đổi chủ sở hữu nhóm, chúng ta phải sử dụng dấu hai chấm (:) sau tên nhóm.

Bây giờ, hãy xác minh chủ sở hữu nhóm của tập tin:

$ ls -l file-1.txt

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Thay đổi quyền sở hữu nhóm tệp trong Linux

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

Trong các ví dụ trước đó, chúng ta đã sử dụng lệnh chown hai lần. Đầu tiên, để thay đổi chủ sở hữu người dùng và sau đó là để thay đổi chủ sở hữu nhóm. Tuy nhiên, chúng ta có thể thay đổi cả người dùng và nhóm bằng một lệnh duy nhất.

Hãy đặt lại chủ sở hữu của tệp thành người dùng và nhóm tecmint bằng cách sử dụng lệnh sau đây:

$ sudo chown tecmint:tecmint file-1.txt

Trong ví dụ này, chúng ta đã sử dụng ký tự hai chấm (:) để phân tách người dùng và nhóm. Giá trị trước hai chấm đại diện cho người dùng trong khi giá trị sau hai chấm đại diện cho nhóm.

Bây giờ, hãy kiểm tra chủ sở hữu tệp đã được cập nhật bằng cách chạy lệnh sau:

$ ls -l file-1.txt 

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Thay đổi quyền sở hữu tệp và nhóm

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

Theo như mặc định, lệnh chown sẽ giải tham chiếu của liên kết tượng trưng, điều này có nghĩa là nếu tệp đầu vào là một liên kết tượng trưng thì nó sẽ thay đổi sở hữu của tệp tham chiếu thay vì liên kết tượng trưng chính nó.

Tuy nhiên, chúng ta có thể ghi đè lên hành vi mặc định bằng cách sử dụng tùy chọn -h như được hiển thị trong ví dụ sau đây.

Đầu tiên, hãy tạo một liên kết tượng trưng và xác minh rằng nó đang trỏ đúng đến tệp tham chiếu:

$ ln -s file-1.txt symlink
$ ls -l symlink 

Tiếp theo, thay đổi quyền sở hữu của liên kết tượng trưng bằng cách sử dụng tùy chọn -h:

$ sudo chown -h narendra:narendra symlink

Cuối cùng, hãy xác minh quyền sở hữu của liên kết tượng trưng và tệp tham chiếu của nó:

$ ls -l symlink file-1.txt

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Thay đổi quyền sở hữu liên kết tượng trưng

Cách chuyển quyền sở hữu tệp cho người dùng

Đôi khi, chúng ta cần cập nhật quyền sở hữu của tệp chỉ sau khi xác nhận quyền sở hữu hiện tại của nó. Trong những trường hợp như vậy, chúng ta có thể sử dụng tùy chọn --from của lệnh chown như sau:

$ sudo chown -h --from narendra:narendra tecmint:tecmint symlink

Trong ví dụ này, tùy chọn --from đại diện cho người sở hữu hiện tại của tệp trong khi đối số tiếp theo đại diện cho quyền sở hữu mới. Vì vậy, lệnh trên sẽ cập nhật quyền sở hữu của tệp - symlink, chỉ khi tệp được sở hữu bởi người dùng và nhóm - narendra.

Bây giờ, hãy kiểm tra quyền sở hữu đã được cập nhật của tệp:

$ ls -l symlink

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Chuyển quyền sở hữu tệp cho người dùng trong Linux

Trong ví dụ này, chúng ta đã chỉ định cả người dùng và nhóm bằng ký tự hai chấm (:) như đã thảo luận trong các ví dụ trước đó. Tuy nhiên, chúng ta cũng có thể chỉ định một trong hai như đã thảo luận trước đó.

Cách sao chép quyền sở hữu từ một tệp khác

Đôi khi, việc sao chép quyền sở hữu từ tệp hiện có thay vì cung cấp từ dòng lệnh là tiện lợi. Trong những tình huống như vậy, chúng ta có thể sử dụng tùy chọn --reference với lệnh chown, nó đại diện cho tệp từ đó quyền sở hữu sẽ được sao chép.

Đầu tiên, tạo một tệp mới và thay đổi quyền sở hữu của nó:

$ touch file-2.txt
$ sudo chown narendra:narendra file-2.txt

Tiếp đến, hãy kiểm tra quyền sở hữu hiện tại của cả hai tệp:

$ ls -l file-1.txt file-2.txt 

Sau đó, thiết lập quyền sở hữu của tệp file-2.txt giống như tệp file-1.txt bằng cách sử dụng lệnh sau:

$ sudo chown --reference=file-1.txt file-2.txt

Cuối cùng, hãy xác minh rằng quyền sở hữu đã được cập nhật thành công:

$ ls -l file-1.txt file-2.txt 

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Sao chép quyền sở hữu từ một tệp khác trong Linux

Trong đầu ra trên, chúng ta có thể thấy rằng giờ đây cả hai tập tin đều có cùng quyền sở hữu.

Cách thay đổi quyền sở hữu thư mục theo cách đệ quy

Chúng ta có thể sử dụng lệnh chown để thay đổi quyền sở hữu của thư mục. Tuy nhiên, hành vi mặc định của lệnh này là không đệ quy.

Điều này có nghĩa là lệnh chown sẽ thay đổi quyền sở hữu chỉ của thư mục đầu vào. Tuy nhiên, chúng ta có thể ghi đè lên hành vi mặc định này bằng cách sử dụng tùy chọn -R như ví dụ sau.

Đầu tiên, hãy tạo một thư mục và hai tệp tin bên trong nó:

$ mkdir dir-1
$ touch dir-1/demo-1.txt dir-1/demo-2.txt

Tiếp theo, hãy kiểm tra chủ sở hữu của thư mục và các tệp tin bên trong nó:

$ ls -ld dir-1
$ ls -l dir-1

Sau đó, hãy thay đổi chủ sở hữu của thư mục và các tệp tin bên trong nó theo cách đệ quy:

$ sudo chown -R narendra:narendra dir-1

Cuối cùng, hãy xác minh chủ sở hữu của thư mục và các tệp tin bên trong nó:

$ ls -ld dir-1
$ ls -l dir-1

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Thay đổi quyền sở hữu thư mục theo cách đệ quy trong Linux

Hiển thị thông tin chi tiết về quá trình của lệnh chown

Như mặc định, lệnh chown trong Linux không hiển thị bất kỳ thông tin nào trên terminal sau khi thay đổi quyền sở hữu. Do đó, cho đến nay chúng ta đã sử dụng tùy chọn -l của lệnh ls để xác minh quyền sở hữu đã được cập nhật.

Để khắc phục hạn chế này, bạn có thể kích hoạt chế độ chi tiết của lệnh để in ra thông tin cho mỗi file được xử lý. Tùy chọn này cung cấp thông tin có ý nghĩa khi được sử dụng với tùy chọn -R. Dưới đây là cú pháp:

Hãy sử dụng tùy chọn -v của lệnh để kích hoạt chế độ chi tiết:

$ sudo chown -Rv tecmint:tecmint dir-1

Bây giờ, hãy kiểm tra kết quả của lệnh:

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Bật chế độ Chown Verbose trong Linux

Ngăn chặn hiển thị các thông báo lỗi của lệnh chown

Giống như các lệnh Linux khác, lệnh chown cũng cung cấp thông tin có ý nghĩa trong trường hợp xảy ra lỗi. Lỗi có thể xảy ra do nhiều nguyên nhân khác nhau, như file không tồn tại, group hoặc user không tồn tại, quyền hạn không đủ để thực hiện một số thao tác,...

Tuy nhiên, đôi khi chúng ta không muốn hiển thị các thông báo lỗi này. Trong những trường hợp như vậy, chúng ta có thể sử dụng tùy chọn -f của lệnh để ẩn các thông báo lỗi.

Để hiểu rõ hơn về điều này, hãy thử thay đổi quyền sở hữu của một file không tồn tại:

$ sudo chown -f narendra:narendra non-existing-file.txt
$ echo $?
1

Bây giờ, hãy xem kết quả của lệnh:

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

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

Như bạn đã thấy, lệnh trên không hiển thị bất kỳ thông báo lỗi nào. Tuy nhiên, lệnh chown báo cáo thất bại bằng cách trả về giá trị khác không (non-zero return value).

Thay đổi ID người dùng và ID nhóm của một file 

Trong những ví dụ trên, chúng ta đã sử dụng tên người dùng và tên nhóm để thay đổi quyền sở hữu của file. Tuy nhiên, bạn cũng có thể sử dụng ID người dùng và ID nhóm để đạt được kết quả tương tự.

Đầu tiên, sử dụng lệnh id để tìm ID người dùng và ID nhóm của người dùng "narendra":

$ id narendra

Bây giờ, hãy sử dụng ID người dùng và ID nhóm 1001 với lệnh chown:

$ ls -l file-1.txt
$ sudo chown 1001:1001 file-1.txt

Cuối cùng, hãy xác nhận rằng quyền sở hữu đã được cập nhật thành công:

$ ls -l file-1.txt

Lệnh chown trong Linux và 11 cách thay đổi quyền sở hữu tệp

Thay đổi quyền sở hữu tệp UID và GID trong Linux

Lệnh chown trong Linux dùng để thay đổi quyền sở hữu tệp, với 11 ví dụ trên thì bạn có thể sử dụng chúng trong công việc hàng ngày để tăng hiệu suất làm việc trên hệ thống.

Mọi người cũng tìm kiếm: chown linux, lệnh chown trong linux, sudo chown, chown 1001

Mọi người cùng tìm kiếm: chown, chown linux, chown ubuntu, lệnh chown trong linux, sudo chown