Bạn là một nhà phát triển web và đang sử dụng máy chủ dùng hệ điều hành Linux hay đang quản lý một website được host trên máy chủ Linux? Nếu dúng là vậy thì việc không biết đến lệnh CHMOD sẽ rất khó khăn trong việc quản lý các tệp tin, dữ liệu. CHMOD hay còn gọi là lệnh thay đổi quyền truy cập có ý nghĩa như thế nào? hoạt động ra sao? Chúng ta hãy cùng đi tìm hiểu nhé…
CHMOD là gì?
CHMOD (viết tắt của Change Mode) là một lệnh trên hệ điều hành Linux/Unix cung cấp các quyền xem, chỉnh sửa hay thay đổi các tệp tin và thư mục. Nếu làm việc với hệ điều hành Linux thì chắc hẳn bạn đã từng gặp phải lỗi không có quyền đọc, sửa hay xóa khi thao tác với các file, folder. Tức là bạn sẽ bị giới hạn quyền với các tệp tin và lệnh CHMOD chắc chắn sẽ giúp bạn giải quyết vấn đề.
Các thông tin quan trọng trong lệnh CHMOD
Trong hệ thống Linux, sự phân quyền (CHMOD) giúp xác định đối tượng truy cập có những quyền gì với các tệp tin (xem, chỉnh sửa hay thực thi các file). Có thể phân chia người dùng thành 3 nhóm đối tượng chính gồm:
Owner: là những người có quyền sở hữu các tệp tin mà họ tạo ra.
Group: là nhóm bao gồm chủ sở hữu (owner), có chung quyền sở hữu với các tập tin và thư mục nhất định.
Others: là những người dùng còn lại trên hệ thống (không thuộc 2 nhóm trên).
Khi truy cập vào một file, bạn sẽ được kiểm tra xem mình thuộc đối tượng nào trong 3 nhóm này, từ đó sẽ có các quyền hạn tương ứng với các thư mục, file… Vậy các quyền hạn đó là gì?
Quyền đọc (read): là quyền chỉ được xem nội dung của tệp tin, thư mục, hoàn toàn không có quyền thay đổi, xóa, hay di chuyển.
Quyền chỉnh sửa (write): có quyền này trong tay, bạn sẽ được xem và thay đổi nội dung của file, bổ sung hoặc xóa các file trong thư mục.
Quyền thực thi (execute): bạn sẽ được phép thực thi file.
Để có thể sử dụng lệnh CHMOD bạn cần hiểu về cách hiển thị các quyền trên hệ thống Linux. Có 2 cách hiển thị, đầu tiên là dạng chuỗi ký hiệu như rwxrw-r--
. Trong đó
r
là quyền đọc (read)
w
là quyền ghi, chỉnh sửa (write)
x
là quyền thực thi (execute)
Dấu -
là bị khuyết quyền.
3 ký tự đầu trong ví dụ trên là quyền của owner, 3 ký tự tiếp theo là quyền của owner group, và còn lại là quyền của others.
Như vậy có thể hiểu dãy "rwxrw-r--
" cho phép owner có tất cả quyền đọc, ghi và thực thi, những người thuộc group thì có quyền đọc và ghi, còn những người còn lại chỉ có quyền xem nội dung file.
Ngoài ra, để tiến hành lệnh change mode (CHMOD) bạn cần biết đến cách hiển thị dạng số của lệnh thay đổi quyền truy cập này:
- Quyền đọc sẽ được ký hiệu bằng số 4
- Quyền ghi sẽ là số 2
- Quyền thực thi là số 1
Lệnh CHMOD dạng số
Nếu bạn dùng Linux khá lâu, chắc hẳn bạn đã từng nhìn thấy các câu lệnh CHMOD 755, CHMOD 644… Ba số trên lần lượt biểu thị cho quyền của 3 nhóm đối tượng. Chẳng hạn như owner có quyền đọc (biểu diễn bằng số 4), quyền ghi (số 2) và quyền thực thi (số 1) thì biểu thị dạng số của owner sẽ là số 7=4 2 1, tương tự với các nhóm còn lại. Ví dụ "rwxrw-r--" sẽ tương ứng với số 764.
Hướng dẫn sử dụng lệnh CHMOD trên Linux
Với những kiến thức trên thì bạn đã có thể dễ dàng thực hiện lệnh CHMOD để thay đổi quyền truy cập cho các file, folder.
Công thức câu lệnh CHMOD tổng quát như sau:
Có thể triển khai theo hai cách sau:
Sử dụng ký hiệu số: ví dụ CHMOD 755 File.txt, có lẽ đây là cách biểu diễn đơn giản và dễ hiểu nhất. Nhìn vào câu lệnh ta dễ dàng thấy được owner có tất cả các quyền đọc, ghi, thực thi (4 2 1=7), group và others đều chỉ có quyền đọc và thực thi (4 1=5).
Sử dụng ký tự chữ: Bạn có thể thay đổi quyền cụ thể cho một, hai hoặc cả ba nhóm đối tượng ví dụ như: CHMOD u=rwx File.txt (cho phép owner, ký hiệu là u, có cả 3 quyền, 2 nhóm còn lại quyền vẫn giữ nguyên như cũ). Bạn cũng có thể dễ dàng thêm hoặc bớt quyền cho một nhóm cụ thể chẳng hạn như: CHMOD g x File.txt (thêm quyền thực thi cho đối tượng group, ký hiệu là g), CHMOD o-w File.txt (xóa quyền ghi của nhóm others, ký hiệu là o)… Bạn có thể tham khảo các lệnh dưới đây để hiểu chi tiết hơn nhé:
u x:
thêm quyền thực thi cho chủ sở hữu (owner).
u-x:
tước quyền thực thi từ chủ sở hữu (owner).
x:
thêm quyền thực thi cho cả 3 nhóm: chủ sở hữu (owner), nhóm sở hữu (group) và những đối tượng còn lại. Lệnh này tương tự như lệnh a x.
o-rw:
loại bỏ quyền đọc và ghi của nhóm đối tượng không thuộc 2 đối tượng là chủ sở hữu (owner) và nhóm sở hữu (group).
go=rw:
thiết đặt cùng lúc quyền đọc và ghi cho cả nhóm sở hữu (group) và nhóm đối tượng còn lại (others). Nếu một trong hai nhóm này trước đây đã có quyền thực thi thì quyền này sẽ bị loại bỏ.
u x, go=rx:
thêm quyền thực thi cho chủ sở hữu (owner), và cho phép nhóm sở hữu (group) và nhóm còn lại (others) chỉ có quyền đọc và thực thi. Các lệnh kết hợp được gõ cùng lúc sẽ cách nhau bằng các dấu phẩy.
Một số chú ý về các lệnh CHMOD
Có một số lệnh Change Mode (CHMOD) thường xuyên được áp dụng, nhưng cũng có lệnh không nên áp dụng trên Linux hoặc các website được host trên Linux như:
CHMOD 777: đây là lệnh cho phép tất cả đối tượng đều được xem, chỉnh sửa, truy cập file. Lệnh này rất nguy hiểm, không nên áp dụng vì độ bảo mật kém, bất cứ ai cũng có thể tác động vào file, có thể gây thiệt hại lớn.
CHMOD 644: quyền này chỉ cho chủ sở hữu mới được quyền chỉnh sửa tệp tin, thư mục, những đối tượng còn lại chỉ có quyền đọc. Lệnh này khá lý tưởng cho những tài liệu công khai vì tính bảo mật khá cao… Chính vì vậy CHMOD 644 thường được áp dụng phổ biến.
CHMOD 555: lệnh này không cho bất cứ ai có quyền chỉnh sửa (write) giúp đảm bảo sự nguyên vẹn file. Tuy nhiên, nó ít được sử dụng hơn so với lệnh CHMOD 644.
Tổng kết lại thì CHMOD là một lệnh rất quan trọng đối với những ai dùng Linux hoặc đang quản lý website được host trên Linux. Hy vọng bài viết sẽ giúp bạn dùng lệnh CHMOD để phân quyền thành công và nhanh chóng, hãy theo dõi website của chúng mình để cập nhật những bài viết bổ ích về công nghệ nhé!