NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
14/08/2024
Lượt xem

Lệnh chmod trong linux – Cách thay đổi quyền truy cập tệp qua 6 ví dụ chi tiết

14/08/2024
17 phút đọc
Lượt xem

Đánh giá

Lệnh chmod trong Linux dùng để thay đổi quyền truy cập vào file hoặc directory. Nếu bạn không muốn người khác truy cập vào những file hoặc directory nhất định trên hệ thống Ubuntu, bạn có thể sử dụng lệnh chmod để thay đổi quyền truy cập. Trong bài viết này, Vietnix sẽ hướng dẫn bạn cách sử dụng lệnh chmod và cùng với các ví dụ thực tế áp dụng lệnh chmod.

Lệnh chmod trong Linux là gì?

Chmod là viết tắt của Change Mode (thay đổi chế độ). Lệnh này giúp bạn kiểm soát ai có thể đọc, viết (chỉnh sửa), và thực thi một file. Bạn có thể cho phép mọi người, một nhóm người cụ thể, hoặc chỉ mình bạn có các quyền này.

Lệnh Chmod trong Linux '
Lệnh Chmod trong Linux

Cú pháp cơ bản của lệnh Chmod

Có 3 cách thực hiện lệnh chmod trong Linux và đều có cùng mục đích.

  • Cách 1:
chmod [OPTION]... MODE[,MODE]... FILE…
  • Cách 2:
chmod [OPTION]... OCTAL-MODE FILE…
  • Cách 3:
chmod [OPTION]... - -reference=RFILE FILE…

Giải thích:

  • OPTION: Các tùy chọn bổ sung cho lệnh (không bắt buộc). Bạn có thể sử dụng nhiều tùy chọn cùng lúc.
  • OCTAL: Quyền truy cập bạn muốn đặt, có thể viết bằng chữ cái (ví dụ: rwx) hoặc số (ví dụ: 755).
  • FILE: Tên của file tin hoặc directory bạn muốn thay đổi quyền.

Lưu ý: Dấu ngoặc vuông [] cho biết phần đó là không bắt buộc. Dấu ba chấm … nghĩa là bạn có thể nhập nhiều mục ở đó.

Bên cạnh đó, mời bạn tham khảo một số bài viết khác về các câu lệnh trong Linux dưới đây:

5 tùy chọn sử dụng của lệnh chmod trong Linux

Tính năng tùy chọn của lệnh chmod: Thay đổi quyền truy cập vào các file và directory một cách linh hoạt.

Tuỳ chọnMô tả
-R, --recursiveThay đổi quyền truy cập cho cả file và directory bên trong directory (thay đổi đệ quy)
-v, --verboseChỉ thông báo khi có thay đổi thực sự về quyền truy cập
-f, --silent, --quietẨn hầu hết các thông báo lỗi (trừ lỗi nghiêm trọng)
--versionHiển thị thông tin về phiên bản của lệnh chmod
--helpHiển thị hướng dẫn sử dụng lệnh chmod

3 bước xem quyền truy cập của file/directory bằng lệnh chmod

Để thay đổi quyền truy cập của một file hoặc directory, bạn cần phải biết quyền hiện tại của file hoặc directory. Dưới đây là 3 bước để xem quyền truy cập:

Bước 1: Mở ứng dụng Terminal trên Ubuntu.

Bước 2: Trong Terminal, gõ lệnh ls với cú pháp sau: 

ls -l

Bước 3: Nhấn phím Enter để thực thi lệnh.

Cách xem quyền của file hoặc directory bằng lệnh chmod
Cách xem quyền của file hoặc directory bằng lệnh chmod

Bạn sẽ thấy một danh sách các file và directory. 10 ký tự đầu tiên của mỗi dòng cho biết loại file/directory và quyền truy cập của file/directory:

  • r: Quyền đọc (read)

  • w: Quyền viết (write)

  • x: Quyền thực thi (execute)

  • -: Không có quyền

Ví dụ:

-rw-r--r--  1 user group    1234 Aug  1 10:22 tenfile.txt

Ở đây, tenfile.txt là một file văn bản. Chủ sở hữu có quyền đọc và ghi, còn những người khác chỉ có quyền đọc.

2 cách thay đổi quyền của file hoặc directory cơ bản bằng lệnh chmod

  1. Thay đổi quyền truy cập của file bằng biểu thức chế độ tượng trưng
  2. Sử dụng chế độ bát phân

Ví dụ 1: Thay đổi quyền truy cập từ file bằng biểu thức chế độ tượng trưng

Giả sử, bạn là chủ sử hữu tệp có tên tượng trưng chẳng hạn là file_name. Nếu bạn muốn thay đổi quyền đọc, ghi và thực thi, hãy thực hiện theo cú pháp lệnh:

chmod u+rwx [tên_tệp]

Sau đó, bạn có ý định xóa quyền chỉnh sửa đối với 1 nhóm và nhiều người:

chmod go-w [file_name]

Trường hợp, bạn muốn cấp quyền đọc và viết cho chủ sở hữu file và chỉ cho phép đọc với những user khác:

chmod u+rw,go+r [tên_tệp]
3 cách thay đổi quyền của file hoặc directory bằng lệnh chmod
3 cách thay đổi quyền của file hoặc directory bằng lệnh chmod

Lưu ý: Ký hiệu người dùng khi thực hiện thao tác lệnh:

  • u: Chủ sở hữu của file/directory
  • g: Nhóm người dùng thuộc nhóm của file/directory
  • o: Người dùng khác (không phải chủ sở hữu và không thuộc nhóm)
  • a: Tất cả người dùng

Giải thích ký hiệu toán tử:

  • “+”: Thêm quyền truy cập
  • “-“: Xóa quyền truy cập
  • “=”: Đặt quyền với các giá trịn được chỉ định

Giải thích chữ cái thực hiện lệnh:

  • r: Quyền đọc
  • w: Quyền chỉnh sửa
  • x: Thực hiện quyền truy cập

Cách 2: Sử dụng chế độ bát phân

Giả sử, bạn cần cấp quyền cho chủ sở hữu tệp quyền đọc và ghi cho chủ sở hữu tệp. Quyền đọc, viết và thực hiện đối với nhó và quyền chỉ được đọc được thực thi với User. Bạn hãy thực hiện theo cú pháp sau:

  chmod 674 [tên_tệp]

Trong đó:

  • 6 thể hiện sự cấp quyền của chủ sở hữu tệp (rw)
  • 7 thể hiện sự cấp quyền của Group đó là (rwx)
  • 4 thể hiện sự cấp quyền của user là (r)

Lưu ý: Các chữ số bát phân được tính bằng tổng các giá trị quyền riêng lẻ

  • 4: Quyền đọc (read)
  • 2: Quyền ghi (write)
  • 1: Thực thi quyền

Ví dụ 1: Cấp quyền sử dụng lệnh chmod trong Linux

Bạn có một file tên là File1.txt. File này hiện tại chưa cho phép người dùng khác (không phải chủ sở hữu file) ghi hoặc thực thi nội dung. Cách thực hiện sẽ như sau:

Cấp quyền sử dụng lệnh chmod trong Linux
Cấp quyền sử dụng lệnh chmod trong Linux

Bước 1: Khởi động ứng dụng Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào Terminal và nhấn Enter:

chmod o=rwx File1.txt

Lệnh này sẽ cấp toàn bộ quyền (đọc, ghi, thực thi – rwx) cho người dùng khác đối với file File1.txt, mặc dù bạn không có quyền truy cập file này.

Lệnh này sẽ cấp toàn bộ quyền (đọc, ghi, thực thi - rwx) cho người dùng khác đối với file File1.txt, mặc dù bạn không có quyền truy cập file này.
Lệnh này sẽ cấp toàn bộ quyền (đọc, ghi, thực thi – rwx) cho người dùng khác đối với file File1.txt, mặc dù bạn không có quyền truy cập file này.

Giải thích:

  • chmod: Lệnh thay đổi quyền truy cập file.

  • o: Áp dụng cho “other users”.

  • rwx: Cấp quyền “read” (đọc), “write” (ghi), và “execute” (thực thi).

  • File1.txt: Tên file bạn muốn thay đổi.

  • -l: Tùy chọn xem danh sách file chi tiết (gồm cả thông tin về quyền truy cập).

Ví dụ 2: Thu hồi quyền truy cập bằng lệnh chmod trong Linux

Bạn có một file tên là File2.txt, file này hiện tại cho phép các thành viên trong nhóm được đọc và ghi nội dung. Để hủy bỏ quyền này, làm theo các bước sau:

Thu hồi quyền truy cập bằng lệnh chmod trong Linux
Thu hồi quyền truy cập bằng lệnh chmod trong Linux

Bước 1: Mở ứng dụng Terminal trong Ubuntu.

Bước 2: Nhập lệnh sau:

chmod g= File2.txt

Bước 3: Nhấn phím ENTER để thực hiện lệnh.

Khi bạn kiểm tra lại quyền của File2.txt, bạn sẽ thấy các thành viên trong nhóm không còn quyền đọc hoặc ghi nữa.

File2.txt, bạn sẽ thấy các thành viên trong nhóm không còn quyền đọc hoặc ghi nữa
File2.txt, bạn sẽ thấy các thành viên trong nhóm không còn quyền đọc hoặc ghi nữa

Lưu ý:

  • u: chủ sở hữu file

  • g: các người dùng thuộc nhóm của file

  • o: những người dùng khác

  • a: tất cả người dùng

  • -l: tùy chọn xem danh sách quyền chi tiết

Ví dụ 3: Cấp quyền sử dụng biểu thức logic trong lệnh chmod

Trong ví dụ trước, Vietnix đã thu hồi quyền truy cập vào file File2.txt của nhóm người dùng. Bây giờ, Vietnix sẽ cấp lại các quyền đó nhưng sẽ sử dụng biểu thức logic trong lệnh chmod. Cùng làm theo các bước sau:

Bước 1: Mở Terminal trong Ubuntu.

Bước 2: Gõ lệnh sau:

chmod g+r File2.txt

Bước 3: Nhấn Enter.

Bước 4: Gõ lệnh sau:

chmod g+w File2.txt

Bước 5: Nhấn Enter.

Bước 6: Gõ lệnh sau:

chmod g+x File2.txt

Bước 7: Nhấn Enter.

Kết quả: Các bạn thấy Vietnix đã dùng lệnh chmod 3 lần để cấp 3 quyền khác nhau. Các ký tự “-” trước đó đã được thay đổi thành r, w và x.

Cấp quyền sử dụng biểu thức logic trong lệnh chmod
Cấp quyền sử dụng biểu thức logic trong lệnh chmod

Ví dụ 4: Thu hồi quyền truy cập bằng biểu thức logic của lệnh chmod

Vietnix sẽ dùng chính file “File2.txt” để làm ví dụ. Như bạn thấy trong hình, file này hiện đang cho phép người khác đọc. Nhưng Vietnix muốn ngăn người khác đọc file này, nên dùng lệnh chmod để thu hồi quyền đọc. Bạn hãy làm theo các bước dưới đây:

Bước 1: Mở Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào cửa sổ Terminal:

chmod o-r File2.txt

Bước 3: Nhấn phím ENTER.

Kết quả: Như bạn thấy, người khác không còn quyền đọc file nữa. Ký tự “r” đã được thay bằng dấu gạch ngang (-).

Thu hồi quyền truy cập bằng biểu thức logic của lệnh chmod
Thu hồi quyền truy cập bằng biểu thức logic của lệnh chmod

Lưu ý: 

  • u = chủ sở hữu của file
  • g = người dùng là thành viên của file-group  
  • o = người dùng khác
  • a = tất cả người dùng.

Tùy chọn (-l) được sử dụng để xem danh sách dài

Ví dụ 5: Thay đổi quyền truy cập cho tất cả người dùng 

Các ví dụ trước, bạn có thể nhận thấy Vietnix chỉ thay đổi quyền truy cập của một nhóm người dùng tại một thời điểm. Như Chủ sở hữu (Owner) hoặc Người dùng trong Nhóm (File Group). Vietnix không thay đổi quyền của cả hai cùng lúc vì có một cách khác để làm điều đó. Trong ví dụ này, Vietnix sẽ sử dụng file File1.txt, hiện cho phép tất cả người dùng đọc. Bạn có thể xác nhận điều này từ hình ảnh bên dưới.

Thay đổi quyền truy cập cho tất cả người dùng 
Thay đổi quyền truy cập cho tất cả người dùng 

Vietnix sẽ thu hồi quyền đọc cho tất cả người dùng chỉ với một lệnh. Hãy làm theo các bước sau để thay đổi quyền truy cập cho tất cả người dùng cùng lúc. Các bước thực hiện:

Bước 1: Mở Ubuntu Terminal.

Bước 2: Nhập lệnh sau:

chmod a-r File1.txt

Bước 3: Nhấn phím ENTER.

Kết quả: Bạn sẽ thấy tất cả các chữ “r” (quyền đọc) được thay thế bằng dấu gạch ngang (-). Điều này có nghĩa là việc thu hồi quyền đã thành công.

việc thu hồi quyền đã thành công
việc thu hồi quyền đã thành công

Lưu ý:

    • u = chủ sở hữu file

    • g = người dùng thuộc nhóm file

    • o = người dùng khác

    • a = tất cả người dùng

    • (-l) được sử dụng để xem danh sách chi tiết.

Ví dụ 6: Cấp lại quyền truy cập bằng ký hiệu bát phân

Trong ví dụ này, chúng ta sẽ khôi phục lại quyền truy cập đã bị thu hồi trước đó cho File1.txt. Trước tiên, hãy xem hình ảnh dưới đây để biết tình trạng hiện tại của file.

Cấp lại quyền truy cập bằng ký hiệu bát phân
Cấp lại quyền truy cập bằng ký hiệu bát phân

Như bạn thấy, hiện tại không ai có quyền đọc file này. Chúng ta sẽ dùng ký hiệu bát phân (octal notation) để cấp lại quyền đọc cho mọi người.

  • Quyền của chủ sở hữu file: rw- = 110 (nhị phân) = 6 (bát phân)
  • Quyền của nhóm người dùng: rw- = 110 (nhị phân) = 6 (bát phân)
  • Quyền của người dùng khác: rwx = 111 (nhị phân) = 7 (bát phân)

Thực hiện các bước sau để cấp quyền:

Bước 1: Mở Terminal (cổng dòng lệnh) trên Ubuntu.

Bước 2: Gõ lệnh sau:

chmod 667 File1.txt

Bước 3: Nhấn phím ENTER.

Kết quả: Bạn sẽ thấy các dấu gạch ngang (-) được thay thế bằng chữ “r”, nghĩa là mọi người đã có quyền đọc file.

Lệnh cho phép mọi người có quyền đọc file
Lệnh cho phép mọi người có quyền đọc file

Lưu ý:

    • r: Quyền đọc (read)

    • w: Quyền ghi (write)

    • x: Quyền thực thi (execute)

    • -: Không có quyền

    • ls -l: Hiển thị danh sách file chi tiết

Lời kết

Trong bài viết này, Vietnix đã giải thích cách hoạt động của lệnh chmod. Vietnix cũng đã đưa ra những ví dụ cụ thể để bạn dễ hiểu hơn. Nếu đọc kỹ bài viết, bạn sẽ tự tin sử dụng lệnh chmod cho các file và directory của Vietnix.

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

Sự khác biệt giữa các quyền truy cập “owner”, “group” và “other” trong chmod là gì?

Lệnh chmod trong Linux được sử dụng để thay đổi quyền truy cập (permissions) của các file và thư mục. Quyền truy cập này được phân chia thành 3 loại chính:
Owner (Chủ sở hữu): người tạo ra file hoặc thư mục, có quyền kiểm soát cao nhất đối với file hoặc thư mục đó.
Group (Nhóm): Là một nhóm người dùng mà owner đã chỉ định. Các thành viên trong nhóm này có thể có quyền truy cập nhất định vào file hoặc thư mục, tùy thuộc vào cách owner thiết lập.
Other (Người khác): Là tất cả những người dùng còn lại trên hệ thống, không phải là owner và cũng không thuộc nhóm của file hoặc thư mục đó.

Có thể sử dụng chmod để thay đổi quyền truy cập của một user hoặc group không?

Không. Lệnh chmod trong Linux chỉ được sử dụng để thay đổi quyền truy cập của một file hoặc thư mục đối với ba chủ thể chính là Owner (chủ sở hữu), Group(nhóm), Other.

Có thể sử dụng chmod để thay đổi quyền truy cập của một liên kết symbolic không?

Có. Bạn có thể sử dụng chmod để thay đổi quyền truy cập của một liên kết symbolic (symbolic link)

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG