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
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
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
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
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
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
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
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
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:
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:
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
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