CHMOD là gì? Hướng dẫn cách CHMOD trên Shared Host chuẩn nhất

Với một người mới chân ướt chân ráo vào làm quen với Hosting mà đã bị yêu cầu “Hãy CHMOD file abc.php thành 611” thì bạn sẽ xử trí như thế nào? Rất khó phải không? Xin trả lời đây là CHMOD.

Vậy CHMOD là gì? Cách CHMOD trên Shared Host ra sao? Đáp án sẽ có ngay bên dưới bài viết nếu bạn chịu khó dành ra ít phút để đọc hết. 

 

Giải thích CHMOD là gì

CHMOD là chữ viết tắt của “Change Mode”, đây một tính năng phân quyền các thư mục và tập tin trên môi trường Linux. Vì phần lớn các host mà bạn đang dùng đều là Linux. Nghĩa là với một thư mục và tập tin, bạn có thể CHMOD nó thành dạng “chỉ đọc” hoặc ở dạng toàn quyền.

CHMOD là gì? Hướng dẫn cách CHMOD trên Shared Host chuẩn nhất a

Với quyền Permission, Chmod chính là thao tác dùng để thay đổi các quyền của 3 loại hành động thực hiện đối với một file hay folder. Cụ thể: 

- “Read” (Đọc file hay folder): viết tắt là “r”, được thể hiện bằng số 4. Với quyền này, bạn chỉ có thể xem được file, và không thể chỉnh sửa hay thay đổi nội dung của file. Còn với folder cũng tương tự, bạn cũng chỉ có thể xem được các files trong folder, mà không thể thực hiện xóa, chỉnh sửa hay thêm bất kỳ file mới nào vào folder.

- “Write” (Ghi / Chỉnh sửa file, folder): viết tắt là “w”, được thể hiện bằng số 2. Khi được phân quyền này, bạn có thể chỉnh sửa hay đổi nội dung của file. Tương tự cho folder, bạn cũng có quyền thực hiện thao tác xóa hay thêm các tập tin khác vào folder. 

Lưu ý: quyền Write đối với một folder cho phép user có thể xóa các file trong folder ngay cả khi user không có quyền Write trên chính file đó.

- “Execute” (Thực thi): được viết tắt là “x”, và biểu diễn bằng số 1. Quyền này sử dụng khi bạn muốn run một file bất kỳ (thường là dạng file script). Đối với folder, bạn dùng Execute để hạn chế hoặc cho phép thay đổi thư mục hiện tại. 

Chmod còn cùng lúc có thể thay đổi quyền thao tác trên các file hay thư mục đối với các nhóm đối tượng sau:

- “Owner”: đây là chủ sở hữu của file hay thư mục. Thông thường sẽ là người tạo ra các file và thư mục đó. Trong Linux, đối với những file và folder mà bạn đã tạo trong thư mục Home của chính mình sẽ thuộc về quyền sở hữu của bạn, trừ khi bạn chuyển quyền này sang cho user khác. 

- “Group”: là nhóm người dùng có chung permission.

- “Public / Others/ Everybody”: là những người còn lại dùng trong cùng hệ thống.

Hướng dẫn cách CHMOD trên Shared Host

Để sử dụng tính năng CHMOD, bạn có thể sử dụng tính năng File Manager trong cPanel hoặc sử dụng FTP thông qua FileZilla đều được. Trong File Manager, bạn để ý ở mỗi tập tin và thư mục đều có một cột biểu diễn CHMOD như hình dưới.

CHMOD là gì? Hướng dẫn cách CHMOD trên Shared Host chuẩn nhất 1

Để đổi lại thông số CHMOD, bạn click chuột phải vào tập tin/thư mục cần đổi và chọn Change Permission.

CHMOD là gì? Hướng dẫn cách CHMOD trên Shared Host chuẩn nhất 2

Còn đối với FTP thì đơn giản hơn, đó là click chuột phải vào đối tượng cần CHMOD rồi chọn File Permissions hoặc CHMOD tùy theo phần mềm.

CHMOD là gì? Hướng dẫn cách CHMOD trên Shared Host chuẩn nhất 3

Vậy thì ý nghĩa của các chữ số phân quyền là như thế nào? Mình sẽ giải thích bên dưới để bạn biết cách phân quyền cho phù hợp.

Giải thích ý nghĩa tham số CHMOD trên trên cPanel 

Các tham số CHMOD trên cPanel đều được biểu diễn thành dạng số, mỗi số là kết quả của nhiều quyền cộng lại.

Mặc định, chúng ta có 3 quyền cơ bản trên mỗi tập tin/thư mục tương ứng với các số như sau:

- Quyền đọc (Read – r) – 4
- Quyền ghi (Write – w) – 2
- Quyền truy cập (Execute – x) – 1 (Quyền này chỉ có trên thư mục)

CHMOD thư mục là gì? 

Bạn nhìn vào các thư mục, bạn thấy số 7 đầu tiên không? Điều này có nghĩa, user host của bạn (tài khoản truy cập vào host) sẽ có toàn quyền, nghĩa là bao gồm quyền đọc, ghi và truy cập ( 4+2+1 = 7).

Vậy con số 755 nghĩa là sao? 755 nghĩa là chỉ số phân quyền tương ứng với:

[user đang sở hữu][nhóm user đang sở hữu][các user còn lại trên server]


Trong đó, [user đang sở hữu] nghĩa là user đã tạo ra file đó. Dĩ nhiên khi sử dụng host, bạn cài website vào thì các thư mục/tập tin đó đang được sở hữu bởi chính bạn.

Vậy 755 nghĩa là:

- [user trên host] có quyền ghi, đọc và thực thi thư mục này (4+2+1= 7)
- [user khác bạn tạo ra] có quyền đọc và truy cập (4+0+1= 5)
- [user còn lại trên host] có quyền đọc và truy cập (4+0+1=5)

Trong đó, số 0 nghĩa là quyền đó chưa được xác định.

Do vậy, việc CHMOD các thư mục thành 755 sẽ rất an toàn vì chỉ có các user sở hữu thư mục đó mới có quyền tạo ra thêm tập tin trong đó. Hoặc bạn có thể “bóp” quyền của các user khác còn lại trên host thành 0 thay vì 5 để bảo mật hơn.

Còn nếu khi CHMOD mà vào website nó báo lỗi 500, tức là user đang sở hữu không thể đọc tập tin PHP.


CHMOD tập tin là gì?

CHMOD cho các tập tin thì cũng giống như ở trên thôi, nhưng nó khác một cái là quyền cao nhất chỉ là 6 (tức là đọc và ghi) chứ không có quyền thực thi.

Ở các tập tin PHP, tốt nhất bạn nên cho [user trên host] phải có quyền 6 để nó có thể vừa thực thi các mã PHP trong đó, vừa có quyền sửa/xóa các tập tin vì khi WordPress chạy nó có thể cần tự sửa một số tập tin.

Vì vậy, CHMOD chuẩn cho các tập tin PHP trên host phải là 644 hoặc 640.

Sử dụng Shared Host rất khó để giải thích một cách chi tiết khái niệm CHMOD nhưng hi vọng các bạn nhớ là khi CHMOD, user sở hữu (ký tự đầu tiên trong dãy 3 chữ số) phải có quyền cao nhất, 2 loại user còn lại nên để quyền giống nhau và lúc nào cũng phải thấp hơn quyền của user sở hữu.

Kết luận:

Thông qua bài viết trên đây, bạn và tôi đã hiểu được phần nào đó về CHMOD là gì và biết cách CHMOD trên Shared Host chuẩn chỉnh. Mong rằng sẽ không có bất kỳ sai sót nào xảy ra. 

Nguồn bài: Thachpham và tổng hợp