Liên hệProfile
Danh mục

Mục Lục

    Cách sử dụng lệnh chown trong Linux để thay đổi quyền sở hữu file/thư mục nhanh chóng

    Nguyễn Hưng

    Ngày đăng:

    16/03/2026

    Cập nhật lần cuối:

    16/03/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    16/03/2026

    Cập nhật lần cuối:

    16/03/2026

    Mục lục

    Chown là lệnh trong Linux dùng để thay đổi quyền sở hữu file hoặc thư mục trong hệ thống. Việc sử dụng chown đúng cách giúp bạn kiểm soát phân quyền truy cập, đảm bảo bảo mật dữ liệu và quản lý tài nguyên hiệu quả hơn khi làm việc trên server hoặc môi trường nhiều người dùng. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh chown trong Linux đơn giản và chi tiết nhất.

    Những điểm chính

    • Khái niệm: Hiểu rõ lệnh chown là công cụ dùng để thay đổi quyền sở hữu, giúp bạn nắm vững vai trò của nó trong việc quản lý và bảo mật file/thư mục.
    • Cách sử dụng: Nắm vững cú pháp cơ bản và các tùy chọn quan trọng, giúp bạn kiểm soát chi tiết cách thay đổi chủ sở hữu và nhóm cho các tài nguyên trên hệ thống.
    • Các ví dụ thực hành: Nắm vững các ví dụ thực tế, giúp bạn áp dụng lệnh chown một cách linh hoạt, từ việc thay đổi owner đến áp dụng đệ quy cho toàn bộ thư mục.
    • Cách kiểm tra và kết hợp: Tìm hiểu cách kiểm tra quyền sở hữu và kết hợp chown với các lệnh khác, giúp bạn xây dựng một quy trình quản lý phân quyền toàn diện và hiệu quả.
    • Các lỗi thường gặp và cách khắc phục: Nhận diện được các lỗi phổ biến, giúp bạn chẩn đoán và xử lý sự cố một cách nhanh chóng, hiệu quả.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lệnh chown trong Linux.

    Lệnh chown trong Linux là gì?

    Lệnh chown trong Linux là dòng lệnh dùng để thay đổi quyền sở hữu của file và thư mục, cụ thể là thay đổi chủ sở hữu và nhóm sở hữu gắn với từng đối tượng trên hệ thống. Khi thực hiện chown, hệ thống không sửa bộ quyền r/w/x trực tiếp mà thay đổi chủ thể sở hữu. Việc này đặc biệt quan trọng trong hệ thống có nhiều tài khoản và nhiều dịch vụ.

    Lệnh chown trong Linux là dòng lệnh dùng để thay đổi user và group gắn với từng đối tượng trên hệ thống
    Lệnh chown trong Linux là dòng lệnh dùng để thay đổi user và group gắn với từng đối tượng trên hệ thống

    Lệnh chown cung cấp khả năng xử lý linh hoạt cho nhiều tình huống quản trị khác nhau như:

    • Bàn giao dữ liệu: Chuyển quyền sở hữu từ user này sang user khác khi thay đổi nhân sự hoặc trách nhiệm quản lý nội dung.
    • Chia sẻ quyền truy cập nhóm: Thay đổi group sở hữu để một nhóm người dùng mới có thể cùng làm việc trên một tập dữ liệu chung.
    • Thiết lập đồng thời: Gán cả user và group chỉ với một câu lệnh duy nhất (ví dụ: chown user:group filename), giúp tối ưu quy trình cấu hình.
    • Chuẩn hóa quy mô lớn: Kết hợp với tùy chọn đệ quy (Recursive -R) để áp dụng thay đổi cho toàn bộ thư mục gốc và tất cả tệp tin/thư mục con bên trong, đảm bảo tính đồng bộ cho các dự án lớn.

    Việc quản lý Ownership là chìa khóa để giải quyết triệt để lỗi “Permission denied”. Quyền truy cập chỉ thực sự phát huy hiệu quả khi tệp tin được gán đúng cho user/group mà dịch vụ hoặc người dùng đang sử dụng để vận hành. Trong các môi trường thực tế như web server, container, hay hệ thống log, việc thiết lập đúng owner là điều kiện tiên quyết để các tiến trình có thể đọc, ghi và khởi tạo dữ liệu một cách an toàn, đúng phân cấp và tránh các lỗ hổng bảo mật do cấp quyền quá rộng.

    1. Cú pháp tổng quát của chown

    Cú pháp chung của lệnh chown được trình bày như sau:

    chown [OPTIONS] USER[:GROUP] FILE...

    Trong đó:

    • USER: Là tên người dùng hoặc UID của chủ sở hữu mới. Khi chỉ định USER (hoặc USER:), user này sẽ trở thành owner mới của file, còn group hoặc giữ nguyên hoặc được hệ thống gán về login group mặc định của user tùy bản phân phối.
    • GROUP: Là tên nhóm hoặc GID mới, đi sau dấu hai chấm. Nếu dùng dạng :GROUP (bỏ trống USER) thì chown chỉ thay đổi group sở hữu mà không động tới owner, rất hữu ích khi muốn cho một nhóm mới cùng chia sẻ quyền truy cập trên tập tin hiện có.
    • USER:GROUP (hoặc USER.GROUP trên một số hệ thống): Là cách chỉ định đồng thời cả chủ sở hữu và nhóm sở hữu, thường được dùng khi cần gán tài nguyên cho đúng user và group dịch vụ chỉ trong một lệnh, ví dụ user ứng dụng và group webserver.
    • FILE…: Là một hoặc nhiều file, thư mục hoặc symbolic link cần đổi quyền sở hữu. Bạn có thể truyền nhiều đối tượng liên tiếp để áp dụng cùng một thiết lập ownership trong một lần thực thi.

    Nhờ cách biểu diễn linh hoạt này, chown cho phép vừa đổi owner riêng lẻ, vừa đổi group độc lập, vừa đổi cả hai cùng lúc. Nó phù hợp với nhiều kịch bản phân quyền và tổ chức lại dữ liệu trên Linux.

    2. Các tùy chọn thường dùng của lệnh chown

    Các tùy chọn đi kèm lệnh chown giúp kiểm soát phạm vi áp dụng và cách ghi log khi thay đổi quyền sở hữu, đặc biệt hữu ích khi làm việc với nhiều file, thư mục hoặc symbolic link trong môi trường thực tế. Bảng dưới đây tổng hợp những option thường được sử dụng khi quản trị hệ thống Linux:

    Tùy chọnChức năng
    -R, --recursiveÁp dụng thay đổi quyền sở hữu một cách đệ quy cho thư mục được chỉ định, bao gồm toàn bộ thư mục con và file bên trong, phù hợp khi chuẩn hóa ownership cho cả cây thư mục dự án hoặc mã nguồn ứng dụng.
    -v, --verboseHiển thị chi tiết các file/thư mục đã được thay đổi quyền sở hữu trong quá trình thực thi lệnh, giúp dễ kiểm tra lại những gì đã được áp dụng.
    -c, --changesChỉ in ra thông tin đối với những đối tượng thực sự có thay đổi ownership, rút gọn output so với --verbose khi xử lý số lượng lớn file.
    --reference=FILESao chép chủ sở hữu và group của FILE tham chiếu cho các file/thư mục mục tiêu, hữu ích khi muốn đồng bộ quyền sở hữu theo một file mẫu mà không cần nhập lại USER:GROUP thủ công.
    -h, --no-dereferenceThay đổi owner/group của chính symbolic link thay vì đối tượng mà link đang trỏ tới, được sử dụng khi cần quản lý ownership trên hệ thống có nhiều symlink.

    Ví dụ 1: Thay đổi owner của file

    Khi cần chuyển giao trách nhiệm quản lý tệp tin từ user này sang user khác (ví dụ: từ root sang nhân sự phụ trách), bạn chỉ định user mới bằng lệnh:

    chown vietnix file.txt
    Thay đổi owner của file
    Thay đổi owner của file

    Sau khi thực thi, file.txt sẽ có owner mới là vietnix, group giữ nguyên như trước. Lệnh này phù hợp khi chỉ cần thay đổi người sở hữu chính mà không ảnh hưởng tới nhóm sở hữu.

    Ví dụ 2: Thay đổi đồng thời owner và group

    Đây là cách nhanh nhất để gán tài nguyên cho một dịch vụ cụ thể (ví dụ: gán file cho user vận hành và nhóm thực thi):

    chown vietnix:docker file.txt
    Thay đổi đồng thời owner và group
    Thay đổi đồng thời owner và group

    Câu lệnh này thiết lập owner của file là vietnix và group là docker. Qua đó các thành viên thuộc group docker có thể truy cập file theo quyền đã cấu hình bằng chmod.

    Ví dụ 3: Chỉ thay đổi group sở hữu

    Nếu muốn giữ nguyên chủ sở hữu nhưng cần mở rộng quyền truy cập cho một nhóm mới, bạn dùng lệnh:

    chown :root file.txt
    Chỉ thay đổi group sở hữu của file
    Chỉ thay đổi group sở hữu của file

    Lệnh này giữ nguyên owner, đồng thời chuyển group của file.txt thành root. Nó hữu ích trong trường hợp bạn muốn file được quản lý hoặc chia sẻ trong một group đặc biệt như root hoặc group dịch vụ cụ thể.

    Ví dụ 4: Đổi quyền sở hữu cho cả thư mục và nội dung bên trong (đệ quy)

    Khi triển khai web server hoặc mã nguồn ứng dụng, toàn bộ cấu trúc thư mục con cần được đồng bộ quyền để tránh lỗi “Permission denied”. Trong trường hợp đó, bạn có thể dùng lệnh:

    chown -R www-data:www-data /var/www/html
    Đổi quyền sở hữu cho cả thư mục và nội dung bên trong
    Đổi quyền sở hữu cho cả thư mục và nội dung bên trong

    Tùy chọn -R giúp áp dụng thay đổi cho toàn bộ /var/www/html và mọi thư mục, file con bên trong, đảm bảo web server chạy dưới user www-data có quyền sở hữu phù hợp để đọc/ghi theo nhu cầu.

    Ví dụ 5: Sao chép quyền sở hữu từ file khác

    Thay vì phải nhớ chính xác tên user/group của một cấu hình cũ, bạn có thể dùng một file đang hoạt động ổn định để làm khuôn mẫu bằng cách sử dụng lệnh sau:

    chown --reference=template.txt newfile.txt

    Sau khi chạy lệnh, newfile.txt sẽ nhận cùng owner và group như template.txt, giúp đồng bộ quyền sở hữu hàng loạt file mà không cần nhớ hoặc nhập lại USER:GROUP thủ công.

    Ví dụ 6: Làm việc với symbolic link bằng chown

    Thông thường, lệnh chown sẽ tác động lên file đích mà link trỏ tới. Để thay đổi quyền của symlink, bạn dùng tùy chọn -h như sau:

    chown -h whales symlink

    Với lựa chọn này, lệnh chown sẽ thay đổi owner của bản thân symlink chứ không dereference tới file gốc, giúp bạn quản lý ownership của symlink một cách độc lập trong các cấu trúc liên kết phức tạp.

    1. Dùng ls -l để xem owner và group

    Để kiểm tra quyền sở hữu cũng như bộ quyền hiện tại của file hoặc thư mục, bạn có thể sử dụng lệnh:

    ls -l

    Lệnh này sẽ liệt kê danh sách các đối tượng trong thư mục kèm chuỗi quyền, số hard link, owner, group, kích thước và thời gian chỉnh sửa gần nhất, giúp bạn nắm được ai đang sở hữu và nhóm nào đang quản lý file đó. Ví dụ một dòng output:

    -rw-r--r-- 1 vietnix docker 2.0K Dec 10 file.txt

    Trong đó vietnix là owner, docker là group, còn -rw-r--r-- thể hiện quyền đọc/ghi cho owner, quyền đọc cho group và others, là cơ sở để quyết định có cần điều chỉnh lại bằng chown/chmod hay không.

    2. Kết hợp chown với chmod và chgrp

    Khi phân tích và xử lý vấn đề phân quyền, quản trị viên thường cần xem đồng thời cả ownership (user, group) và permission bits (r/w/x) để có bức tranh đầy đủ về trạng thái truy cập của file/thư mục. Một quy trình thường được áp dụng là kiểm tra thông tin bằng ls -l để xác định owner, group và quyền đang gán. Sau đó, bạn sử dụng chown hoặc chgrp để cập nhật lại quyền sở hữu cho đúng user/group. Cuối cùng tinh chỉnh chi tiết quyền truy cập bằng chmod nếu cần để đảm bảo file/thư mục vừa đúng owner/group, vừa có bộ quyền phù hợp với nhu cầu sử dụng và chính sách bảo mật.

    Quy trình phân tích và xử lý vấn đề phân quyền
    Quy trình phân tích và xử lý vấn đề phân quyền

    1. Lỗi “chown: changing ownership of … Operation not permitted”

    Thông báo này thường xuất hiện khi tài khoản hiện tại không có đủ quyền để thay đổi quyền sở hữu file hoặc thư mục. Nguyên nhân phổ biến là user không có quyền root/sudo, đối tượng thuộc vùng hệ thống quan trọng hoặc file đang bị bảo vệ bởi ACL hoặc thuộc tính immutable nên không thể chỉnh sửa ownership. Cách khắc phục là chạy lại lệnh với sudo chown … hoặc chuyển sang tài khoản root, đồng thời kiểm tra và điều chỉnh lại ACL, thuộc tính bảo vệ file (ví dụ với lsattr, chattr) nếu vẫn bị từ chối.

    2. Lỗi khi dùng -R trên thư mục hệ thống

    Việc sử dụng chown -R trên các thư mục lõi như/etc, /var, /usr hoặc các path chứa file hệ thống có thể làm phá vỡ cấu trúc ownership mặc định. Điều này, dẫn đến dịch vụ không khởi động được hoặc hệ thống hoạt động không ổn định. Vì tác động của -R là đệ quy xuống toàn bộ thư mục con và file bên trong, bạn chỉ áp dụng trong phạm vi thư mục dự án, thư mục dữ liệu hoặc các path mà bạn nắm rõ, tránh chạy đệ quy trên cả filesystem hoặc các thư mục hệ thống quan trọng.

    3. Một số lỗi khác liên quan đến user/group không tồn tại

    Nếu bạn chỉ định USER hoặc GROUP không tồn tại trong hệ thống (sai tên, chưa tạo user/group), chown sẽ báo lỗi và không thực hiện bất kỳ thay đổi nào trên đối tượng được chỉ định. Để xử lý, bạn nên kiểm tra lại danh sách user và group bằng các lệnh như getent passwd, getent group hoặc công cụ quản lý user/group tương ứng, đảm bảo USER:GROUP truyền vào chown là hợp lệ trước khi chạy lệnh trên nhiều file hoặc thư mục quan trọng.

    Một số lỗi thường gặp khi dùng chown
    Một số lỗi thường gặp khi dùng chown

    Câu hỏi thường gặp

    Chown khác gì so với chmod trong quản lý phân quyền Linux?

    Chown dùng để thay đổi quyền sở hữu (user, group) gắn với file/thư mục, còn chmod dùng để thay đổi bộ quyền r/w/x áp dụng cho các lớp owner, group, others. Trong thực tế, hai lệnh này thường được sử dụng kết hợp: chown/chgrp dùng để gán đúng user/group chịu trách nhiệm, sau đó chmod tinh chỉnh chi tiết quyền truy cập cho từng lớp người dùng.

    Có thể dùng UID/GID dạng số với chown hay không?

    Chown cho phép chỉ định chủ sở hữu bằng tên user/group hoặc bằng UID/GID dạng số, tùy theo nhu cầu quản trị hệ thống. Khi sử dụng UID/GID, bạn cần đảm bảo các ID này tồn tại trong hệ thống và trên một số môi trường có thể cần tiền tố đặc biệt (như ký tự +) để phân biệt rõ ID số với tên user trùng nhau.

    Làm sao đảm bảo đổi ownership đúng đối tượng khi chạy chown trên nhiều file?

    Khi thao tác trên nhiều file hoặc thư mục, quản trị viên nên dùng ls -l để kiểm tra lại owner/group trước và sau khi chạy chown, đồng thời có thể thêm tùy chọn -v để theo dõi chi tiết từng thay đổi. Ngoài ra, bạn cần hạn chế dùng -R trên cây thư mục rộng nếu chưa kiểm tra kỹ và nên chạy thử trên phạm vi nhỏ trước khi áp dụng cho toàn bộ dự án hoặc thư mục dữ liệu lớn.

    Khi hiểu rõ cách sử dụng chown và biết kết hợp với chmod, chgrp, bạn có thể thiết lập quyền sở hữu tài nguyên rõ ràng hơn, hạn chế lỗi Permission denied và đảm bảo dịch vụ truy cập đúng file cần thiết. Dựa trên các ví dụ và lưu ý đã trình bày, bạn có thể áp dụng chown trực tiếp trên VPS hoặc server Linux đang quản trị để chuẩn hóa quyền sở hữu cho ứng dụng, dữ liệu và thư mục hệ thống một cách an toàn. Cảm ơn bạn đã theo dõi!

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn dùng lệnh who Linux để kiểm tra người dùng đang đăng nhập nhanh chóng 
    Hướng dẫn dùng lệnh who Linux để kiểm tra người dùng đang đăng nhập nhanh chóng 

    Lệnh who trong Linux là công cụ dòng lệnh dùng để hiển thị danh sách người dùng hiện đang đăng nhập vào hệ thống cùng với thông tin phiên làm việc tương ứng. Nhờ đó, bạn có thể nhanh chóng kiểm tra trạng thái đăng nhập, theo dõi hoạt động của người dùng và hỗ…

    16/03/2026

    Cách dùng lệnh whoami trong Linux kiểm tra người dùng hiện tại nhanh chóng và chính xác
    Cách dùng lệnh whoami trong Linux kiểm tra người dùng hiện tại nhanh chóng và chính xác

    Lệnh whoami trong Linux là công cụ dòng lệnh dùng để xác định nhanh user hiện đang đăng nhập và thực thi phiên làm việc trên hệ thống. Việc kiểm tra user hiện tại giúp bạn xác nhận quyền truy cập, tránh thao tác nhầm tài khoản khi quản trị server hoặc chạy script. Trong…

    16/03/2026

    Cách dùng lệnh id trong Linux để kiểm tra thông tin user và quyền truy cập nhanh chóng
    Cách dùng lệnh id trong Linux để kiểm tra thông tin user và quyền truy cập nhanh chóng

    Lệnh id trong Linux là công cụ dòng lệnh dùng để hiển thị thông tin định danh của user như UID, GID và các group mà user đó thuộc về. Thông qua lệnh này, bạn có thể nhanh chóng kiểm tra quyền truy cập và cấu hình phân quyền của tài khoản trong hệ thống.…

    16/03/2026

    Cách dùng lệnh chgrp trong Linux để quản lý nhóm sở hữu file hiệu quả và chính xác
    Cách dùng lệnh chgrp trong Linux để quản lý nhóm sở hữu file hiệu quả và chính xác

    Lệnh chgrp trong Linux được sử dụng để thay đổi nhóm sở hữu của file hoặc thư mục trong hệ thống. Việc sử dụng chgrp giúp quản lý quyền truy cập theo nhóm hiệu quả hơn, đặc biệt trong môi trường nhiều người dùng hoặc hệ thống máy chủ cần phân quyền rõ ràng. Trong…

    16/03/2026

    linux

    lenh

    text