Tìm hiểu cách sử dụng lệnh chown trong Linux để thay đổi quyền sở hữu của tệp và thư mục, quản lý quyền truy cập và bảo mật hệ thống hiệu quả. Bài viết sẽ chia sẻ hướng dẫn chi tiết, cú pháp, ví dụ và giải thích dễ hiểu, giúp bạn thành thạo thao tác này ngay cả khi mới bắt đầu. Tìm hiểu ngay!
Lệnh chown trong Linux là gì?
Lệnh chown trong Linux được sử dụng để thay đổi quyền sở hữu của tệp hoặc thư mục. Quyền sở hữu bao gồm hai phần:
- Chủ sở hữu: Người dùng sở hữu tệp hoặc thư mục.
- Nhóm: Nhóm người dùng mà tệp hoặc thư mục thuộc về.
Lệnh chown có thể được sử dụng bởi người dùng có quyền root hoặc người dùng sở hữu tệp hoặc thư mục.

chown trong Linux được sử dụng để thay đổi quyền sở hữu của tệpCách sử dụng lệnh chown trong Linux hiệu quả
Lệnh chown có cú pháp chung như sau:
chown [OPTIONS] USER[:GROUP] FILE(s)Trong đó:
- USER là tên người dùng (username) hoặc ID (UID) của chủ sở hữu.
- GROUP là tên của group hoặc group ID (GID).
- FILE(s) là tên của một hay nhiều file, thư mục hoặc liên kết. Trong đó các ID dạng số phải được bắt đầu bằng ký tự +.
Giải thích chi tiết hơn:
USER– Nếu chỉ có user được chỉ định trong lệnh thì user này sẽ trở thành chủ sở hữu của file, quyền sở hữu theo group vẫn không thay đổi.USER:– Nếu sau username là dấu:mà không có tên group thì user này trở thành chủ sở hữu của file, còn quyền sở hữu file theo group sẽ được chuyển thành login group của user.USER:GROUP– Nếu chỉ định cả hai thì quyền sở hữu theo người dùng chuyển thànhUSER, quyền sở hữu theo nhóm được gán choGROUPtrong lệnh.:GROUP– Nếu không chỉ định user thì chỉ thay đổi quyền sở hữu theo group của file.:– Nếu không chỉ định gì thì sẽ không thay đổi quyền sở hữu file theo group lẫn user.
Theo mặc định thì lệnh chown không trả về kết quả gì nếu thực thi thành công. Ta có thể dùng lệnh ls -l để kiểm tra xem quyền sở hữu file đã được cập nhật chưa:
ls -l filename.txtOutput:
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| |
| +-----------> Group
+-------------------> OwnerNgười dùng thông thường chỉ có thể thay đổi group của một file nếu người dùng sở hữu file, đồng thời là một thành viên trong group cần thay đổi. Mặt khác, các user quản trị viên có thể thay đổi quyền sổ hữu file theo group của mọi file.
Nếu bạn muốn kiểm tra và xem sách user trong Linux nhưng chưa biết sử dụng lệnh nào. Bạn có thể tìm hiểu qua bài chia sẻ này: Cách kiểm tra và xem danh sách user trong Linux
Thay đổi chủ sở hữu của file
Để thay đổi chủ sở hữu của file, ta có thể dùng lệnh chown kèm theo username của chủ sở hữu mới và tên file:
chown USER FILEChẳng hạn ta cần đổi quyền sở hữu của file file1 sang chủ sở hữu mới là vietnix:
chown vietnix file1Để đổi quyền sổ hữu của nhiều file hay thư mục thì ta có thể chỉ định từng file/thư mục trong lệnh, ngăn cách nhau bởi khoảng trắng. Ví dụ ta cần đổi quyền sở hữu của các file1 và dir1 sang user mới là vietnix:
chown vietnix file1 dir1
UID của user có thể được dùng thay cho username. Giả sử ta cần đổi quyền sở hữu của file2 sang user có UID 1000:
chown 1000 file2Nếu có một người dùng có tên dạng số thì quyền sở hữu sẽ được chuyển sang người dùng này dựa trên username. Khi đó ta có thể dùng tiền tố + để tránh nhầm lẫn.
Cách đổi quyền sở hữu và group của một file
Để thay đổi cả chủ sở hữu và group của một file thì ta có thể dùng lệnh chown, kèm theo user và group cách nhau bởi dấu : như sau.
chown USER:GROUP FILEGiả sử ta cần đổi quyền sổ hữu của file1 sang user vietnix và group users:
chown vietnix:users file1
Nếu bỏ tên group thì group của file sẽ được tự động chuyển thành login group của người dùng trong lệnh:
chown vietnix: file1Cách đổi group của một file
Nếu muốn thay đổi group của một file, ta có thể dùng lệnh chown kèm theo tên group như sau:
chown :GROUP FILEGiả sử ta cần đổi quyền sở hữu theo group của file1 sang nhóm www-data:
chown :www-data file1Cách đổi quyền sở hữu của symbolic link
Nếu không sử dụng option đệ quy (recursive) thì lệnh chown sẽ đổi quyền sở hữu theo group của file mà liên kết tượng trưng đang trỏ đến, chứ không thay đổi bản thân liên kết tượng trưng này.
Giả sử ta cần đổi chủ sở hữu và group của symlink1 đang trỏ đến /var/www/file1. Lệnh chown sẽ chỉ thay đổi chủ sở hữu của file và thư mục mà symlink đang trỏ đến.
chown www-data: symlink1Ngoài ra ta còn có thể gặp lỗi “cannot dereference ‘symlink1’: Permission denied” vì hầu hết các symlink trên nhiều bản phân phối Linux đều được bảo vệ, nên người dùng sẽ không thể thao tác trên những file này.
Do đó, để thay đổi quyền sở hữu theo group của symlink thì ta có thể dùng option -h như sau:
chown -h www-data symlink1Thay đổi chủ sở hữu theo phương thức đệ quy
Để thay đổi quyền sổ hữu của file và thư mục theo kiểu đệ quy thì ta có thể dùng option -R (--recursive) như sau:
chown -R USER:GROUP DIRECTORYGiả sử ta cần đổi quyền sở hữu của mọi file và thư mục con có trong /var/www sang group www-data:
chown -R www-data: /var/wwwNếu thư mục này có chứa các symlink thì ta có thể truyền thêm option -h:
chown -hR www-data: /var/wwwTuy nhiên, khi thực hiện thao tác đệ quy, đặc biệt trên số lượng lớn file và thư mục, hiệu suất của lệnh chown phụ thuộc rất nhiều vào tốc độ xử lý của hệ thống. Vì vậy, một môi trường ổn định như VPS là yếu tố không thể thiếu. Với dịch vụ VPS AMD của Vietnix, được trang bị bộ vi xử lý AMD EPYC mạnh mẽ, ổ cứng NVMe Enterprise siêu tốc và khả năng mở rộng linh hoạt, sẽ tối ưu hóa hiệu suất hệ thống, giúp bạn thực hiện các thao tác chown đệ quy một cách nhanh chóng và hiệu quả, ngay cả với số lượng file khổng lồ, mà không lo ngại về giới hạn băng thông hay tốc độ truy xuất.
Cách đổi chủ sở hữu bằng file tham chiếu
Option --reference=ref_file cho phép ta thay đổi quyền sở hữu theo user và group của các file dựa trên quyền sở hữu của file tham chiếu được chỉ định trong ref_file. Nếu file tham chiếu là một liên kết tượng trưng thì chown sẽ sử dụng user và group của file đích.
chown --reference=REF_FILE FILEGiả sử ta cần gán quyền sở hữu theo user và group của file1 cho file2:
chown --reference=file1 file2
Lời kết
Lệnh chown trong Linux là một công cụ command-line vô cùng tiện lợi để thay đổi quyền sở hữu của các file và thư mục. Bài viết trên đã hướng dẫn những trường hợp sử dụng cơ bản và phổ biến nhất của lệnh chown trong Linux. Chúc các bạn thành công!
















