Linux

Hướng dẫn cách sử dụng lệnh Chown trong Linux

Hướng dẫn cách sử dụng lệnh Chown trong Linux để thay đổi quyền sở hữu của người dùng với các file.

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.

Xem thông tin sở hữu

Đầu tiên, bạn cần đă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ận 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

Chúc bạn sớm thành thạo cách sử dụng lệnh Chown trong Linux!

Bài viết liên quan

Back to top button