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.
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…
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
Tuỳ chọn | Mô tả |
-R, --recursive | Thay đổi quyền truy cập cho cả file và directory bên trong directory (thay đổi đệ quy) |
-v, --verbose | Chỉ 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) |
--version | Hiển thị thông tin về phiên bản của lệnh chmod |
--help | Hiể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.
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
- Thay đổi quyền truy cập của file bằng biểu thức chế độ tượng trưng
- 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]
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 667 [tên_tệp]
Trong đó:
- 6 thể hiện sự cấp quyền của chủ sở hữu tệp (rw)
- 6 thể hiện sự cấp quyền của user là (r)
- 7 thể hiện sự cấp quyền của Group đó là (rwx)
6 ví dụ về cách sử dụng lệnh chmod trong Linux
Ví dụ 1: Cấp quyền sử dụng lệnh chmod trong Linux
Bạn có một file tên là text4.pdf 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:
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 text4.pdf
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 text4.pdf, mặc dù bạn không có quyền truy cập file này.
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à text4.pdf, 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:
Bước 1: Mở ứng dụng Terminal trong Ubuntu.
Bước 2: Nhập lệnh sau:
chmod g= text4.pdf
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 text4.pdf, 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.
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 text3.pdf
Bước 3: Nhấn Enter.
Bước 4: Gõ lệnh sau:
chmod g+w text3.pdf
Bước 5: Nhấn Enter.
Bước 6: Gõ lệnh sau:
chmod g+x text3.pdf
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.
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 folder5
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 (-).
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.
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 code_file.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.
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.
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 code_file.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ờ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)