Việc thiết lập sai quyền hạn (permission) cho file và thư mục là một vấn đề phổ biến, có thể gây ra lỗi hiển thị hoặc nghiêm trọng hơn là tạo ra lỗ hổng bảo mật. Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh find để CHMOD hàng loạt một cách nhanh chóng và chính xác.

Tại sao nên dùng CHMOD 644 cho file và 755 cho thư mục?

Đây là bộ quyền hạn tiêu chuẩn và an toàn cho hầu hết các môi trường lưu trữ web:

  • File (644): Chỉ có chủ sở hữu (owner) mới có quyền ghi (sửa/xóa), trong khi những người dùng khác chỉ có quyền đọc. Điều này ngăn chặn người khác chỉnh sửa mã nguồn của bạn.
  • Thư mục (755): Chủ sở hữu có toàn quyền. Những người dùng khác có quyền đọc và truy cập vào bên trong thư mục, điều này cần thiết để web server có thể đọc và phục vụ các file bên trong.

1. Các trường hợp CHMOD phổ biến

Dưới đây là các lệnh bạn có thể sử dụng trực tiếp. Hãy thay /home/username/public_html bằng đường dẫn thực tế của bạn.

Trường hợp 1: Thiết lập lại toàn bộ quyền hạn về chuẩn

Đây là tác vụ phổ biến nhất khi bạn muốn dọn dẹp và đảm bảo toàn bộ mã nguồn có quyền hạn chính xác.

- Đặt tất cả FILE thành 644:

find /home/username/public_html -type f -exec chmod 644 {} ;

- Đặt tất cả THƯ MỤC thành 755:

find /home/username/public_html -type d -exec chmod 755 {} ;

Trường hợp 2: Sửa các quyền hạn sai và không an toàn

Đôi khi, bạn chỉ muốn tìm và sửa những file/thư mục đang bị CHMOD sai, ví dụ như 666 hoặc 777.

- Tìm các file đang có quyền 666 và chuyển về 644:

find /home/username/public_html -type f -perm 0666 -exec chmod 644 {} ;

- Tìm các thư mục đang có quyền 777 và chuyển về 755:

find /home/username/public_html -type d -perm 0777 -exec chmod 755 {} ;

Trường hợp 3: Thực hiện cho tất cả người dùng

Nếu bạn là quản trị viên máy chủ và muốn thực hiện cho tất cả các tài khoản người dùng trong thư mục /home, bạn có thể thay thế tên người dùng bằng ký tự đại diện *.

# CHMOD tất cả file của tất cả user về 644
find /home/*/public_html -type f -exec chmod 644 {} ;

# CHMOD tất cả thư mục của tất cả user về 755
find /home/*/public_html -type d -exec chmod 755 {} ;

Cảnh báo quan trọng

Lệnh find kết hợp với -exec rất mạnh mẽ. Hãy kiểm tra kỹ đường dẫn trước khi thực thi lệnh, đặc biệt là khi sử dụng quyền root (sudo) hoặc ký tự đại diện (*). Một sai sót nhỏ có thể làm thay đổi quyền hạn trên toàn bộ hệ thống và gây ra lỗi nghiêm trọng.

Chia sẻ:
Đánh giá:

( Có: 1 đánh giá. Trung bình 5, thang điểm: 1 đến 5 )