Các lệnh chown command trong linux và cách sử dụng chúng

Trong hệ điều hành Linux, mỗi file được đặt trong một nhóm sở hữu – group ownership và đặt bởi một chủ sở hữu. Chown là chữ viết tắt của “change owner” – đổi chủ sở hữu. Như tên gọi, chown command được dùng để thay đổi chủ sở hữu và nhóm chủ sở hữu của file, thư mục, links nếu bạn đang có quyền superuser của hệ thống Unix. Bài viết này sẽ hướng dẫn bạn cách sử dụng chúng.

Nếu một người dùng bình thường muốn chỉnh sửa file, superuser có thể dùng lệnh chown command này để thay đổi ownership và cho phép họ chỉnh sửa

Xem thông tin sở hữu

Nếu vừa mới thuê VPS lần đầu, bạn cần thiết lập tự động đăng nhập VPS bằng SSH. Nếu bạn chưa biết cách dùng, hãy xem qua bài hướng dẫn này, nó có tất cả thông tin cần thiết.

Trước khi sử dụng lệnh chown, bạn cần biết thông tin tin sử hữu nhóm và user sở hữu trước đã. Để lấy các thông tin này, bạn có thể dùng lệnh cd rồi chuyển tới thư mục cần biết.

Ví dụ, nếu đường dẫn của file là /tmp/TestUnix, bạn có thể chuyển tới thư mục này bằng lệnh:

cd /tmp/TestUnix

Tại đây liệt kê danh sách file trong thư mục bằng lệnh sau:

ls -l

Trong bài hướng dẫn này, ví dụ có một file có tên chownSample.txt trong thư mục này. Output của lệnh trên sẽ có kết quả như sau:

-rw-r--r-- 1 root root 0 Feb 20 17:35 chownSample.txt

Phần đầu tiên -rw-r–r–, đại diện cho file permission (quyền sỡ hữu của file). Còn lại, thông tin đầu tiên root là user ownership, root thứ 2 là group owener. Vậy chownSample.txt sở hữu bởi user root, và user này thuộc về nhóm có tên root.

Chown cho Files – đổi quyền sở hữu của file

Để thay đổi owner của file (chủ sở hữu của file), lệnh cơ bản sẽ như sau:

chown user filename(s)

Lấy ví dụ file trên là chownSample.txt, chúng tôi thay đổi từ user sở hữu là root sang một user khác có tên là whales. Thực hiện lệnh như sa:

chown whales chownSample.txt

Để kiểm tra thay đổi có được thực thi, bạn có thể dùng lại lệnh ls -l. Output sẽ hiện lên như sau:

-rw-r--r-- 1 whales root 0 Feb 20 17:45 chownSample.txt

Lệnh trên có thể chỉnh một chút để thay đổi quyền group owner, như sau:

chown user[:group] filename(s)

Lấy ví dụ trên nếu bạn muốn đổi group owner của chownSample.txt thành group aquatic, vậy lệnh sẽ cần được thực thi như sau:

chown whales:aquatic chownSample.txt

Để kiểm tra file đã được đổi thành công chưa, bạn dùng lại lệnh ls -l. Kết quả sẽ như sau:

-rw-r--r-- 1 whales aquatic 0 Feb 20 17:50 chownSample.txt

Nếu chỉ có group cần thay đổi, mà giữ nguyên owner, thì bạn gõ lệnh sau như sau:

chown :aquatic chownSample.txt

Chown có chức năng tương tự như lệnh chgrp khi bạn không đưa ra thông tin owner.

Tóm lại, cấu trúc của lệnh chown command với các tùy chọn là:

chown [OPTIONS] [USER] [:GROUP] filename(s)

Chown cho thư mục – đổi ownership của thư mục

Chown cũng có thể áp dụng cho thư mục. Thư mục này chỉ chứa files hoặc thư mục hoặc cả hai.

Lấy ví dụ chúng tôi có thư mục TestUnix, với các quyền khi dùng lệnh ls -l liệt kê có kết quả như sau:

drwxr-xr-x 2 root root 4096 Feb 20 17:35 TestUnix

Như bạn thấy đoạn đầu drwxr-xr-x, đại diện của việc phân quyền thư mục. Còn phần hai có 2 chữ root là đại diện cho quyền sở hữu. Root đầu tiên là thông tin user sở hữu và root thứ hai là thông tin nhóm sở hữu. TestUnix trong ví dụ này vì vậy có chủ sở hữu là root và thuộc về nhóm sở hữu là root.

Giống với files, bạn có thể thay chủ sở hữu cho thư mục này. Bạn thực hiện lệnh như sau để đổi chủ sở hữu của thư mục này thành whales:

chown whales /TestUnix

Để đổi group sở hữu, dùng lệnh:

chown :aquatic /TestUnix

Để thay đổi cả owner và group owner, bạn dùng lệnh sau:

chown whales:aquatic /TestUnix

Lệnh này cũng dùng được cho nhiều file và thư mục. Bạn thao tác như cấu trúc bên dưới:

chown [OPTIONS] [USER][:GROUP] file1 file2

Ví dụ của lệnh trên là:

chown whales:aquatic /tmp/TestUnix/chownSample.txt /tmp/TestUnix

Chown cho Links

Chown command có thể được dùng trên symbolic link và soft link. Symbolic link là liên kết tham chiếu tới vị trí file gốc vật lý đã tồn tại. Lệnh ln được dùng để tạo soft links. Ví dụ như file chownSample.txt, chúng tôi tạo symbolic link bằng lệnh sau::

ln -s chownSample.txt symlink

Để xác nhậ chủ sở hữu và nhóm chủ sở hữu, chúng tôi lại dùng lệnh ls -l. Lệnh này sẽ xuất kết quả như bên dưới:

-rw-r--r--  1 root root  0 Feb 19 22:01 chownSample.txt
lrwxr-xr-x  1 root root 5 Feb 19  7 22:01 symlink -> chownSample.txt

Có 2 kết quả. Một là file vật lý và 2 là file symbolic link. Để ví dụ, chúng tôi sẽ muốn đổi ownership của file symlink này, lệnh sẽ như sau:

chown whales symlink

Lệnh ở trên thay đổi ownership của file chownSample.txt. Khi thực hiện lệnh ls -l ta sẽ thấy kết quả như sau:

-rw-r--r--  1 whales root  0 Feb 19 22:01 chownSample.txt
lrwxr-xr-x  1 root root 5 Feb 19  7 22:01 symlink -> chownSample.txt

Nếu bạn muốn thực sự đổi ownership của symbolic vậy bạn cần dùng option -h. Lệnh này như sau:

chown -h whales symlink

Tại đây nếu bạn sử dụng command ls -l, vậy output sẽ như sau:

-rw-r--r--  1 whales root  0 Feb 19 22:01 chownSample.txt
lrwxr-xr-x  1 whales root  5 Feb 19 7 22:01 symlink -> chownSample.txt

Sử dụng chown đệ quy (recursive)

Chown command áp dụng lên thư mục, tuy nhiên, nếu dùng thông thường thì không áp dụng được cho file và thư mục con bên trong thư mục áp dụng. Vậy để thay đổi ownership cho toàn bộ thư mục con và file bên trong thư mục đó, chúng ta cần thực hiện lệnh một cách đệ quy.

Rất đơn giản, chúng ta chỉ cần thêm tùy chọn -R khi chạy lệnh, kết quả sẽ như sau:

chown -R [USER][:GROUP] Directory

Nếu ạn có thư mục TestUnix với nhiều thư mục con, lệnh trên sẽ thay đổi user owner của toàn bộ thư mục con đó và thư mục chính sang user whales.

chown -R whales /TestUnix

Tóm lại

Vậy thôi, giờ bạn đã biết cơ bản về chown command. Unix system có trang hướng dẫn chi tiết cho từng command. Nó có thể giúp bạn sử dụng lệnh này điêu luyện nhất và tận dụng mọi khả năng của nó. Bạn lấy tài liệu hướng dẫn này bằng lệnh man chown. Chúng tôi hy vọng bài viết này hữu ích và giúp bạn quản lý tốt file VPS hiệu quả, an toàn, và chuyên nghiệp nhất. Chúc lập trình vui vẻ!

Author
Tác giả

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.