Hướng dẫn sửa lỗi quyền trên DirectAdmin
Và đó là lý do tại sao DirectAdmin có các tập lệnh để khắc phục những tình huống như vậy. Tuy nhiên, tập lệnh này có sự hạn chế là không thể thay đổi quyền truy cập của các tệp do người dùng tải lên trong thư mục public_html hoặc private_html.
1. Hướng dẫn sửa lỗi quyền trên DirectAdmin?

Hướng dẫn chi tiết:
- Trước tiên, chúng ta cần SSH vào server với quyền Root. - Sau đó, chạy lệnh sau để đặt lại tất cả các tài khoản trên DirectAdmin:
cd /usr/local/directadmin/scripts
./set_permissions.sh allTa có thể đặt lại quyền truy cập và quyền sở hữu của một tên miền như sau:
./set_permissions.sh domaindir domainname.comChúng ta cần thay Domainname.com bằng tên miền thực tế.
Tiếp theo, chúng ta có thể đặt lại quyền truy cập thư mục chính của người dùng như sau:
./set_permissions.sh user_homesTiếp theo, chúng ta có thể đặt lại các tệp và thư mục hệ thống DirectAdmin như sau:
./set_permissions.sh da_filesNếu muốn đặt lại quyền truy cập MySQL, chúng ta cần chạy lệnh sau:
./set_permissions.sh mysqlSau đó, đặt lại quyền truy cập email bằng lệnh này:
./set_permissions.sh emailĐặt lại các tệp cấu hình trong thư mục etc như sau:
./set_permissions.sh etc_configsTa cũng có thể đặt lại quyền truy cập tệp nhật ký như sau:
./set_permissions.sh logsĐể đặt lại thư mục chính của một người dùng cụ thể trong DirectAdmin:
./set_permissions.sh set_user_home <user>Chúng ta cần thay user bằng tên người dùng DirectAdmin thực tế.
2. Một số câu hỏi thường gặp:
- Tại sao cần sửa lỗi quyền truy cập trên DirectAdmin?
Quyền truy cập sai (permissions) hoặc quyền sở hữu (ownership) của file/thư mục có thể gây ra lỗi như không thể sao lưu, khôi phục email, truy cập website (lỗi 403 Forbidden), hoặc các chức năng khác của DirectAdmin bị gián đoạn. Các thay đổi quyền không đúng (ví dụ: do chỉnh sửa thủ công hoặc script) có thể phá vỡ hoạt động hệ thống. Script set_permissions.sh giúp khôi phục quyền về trạng thái chuẩn.
- Lệnh set_permissions.sh all làm gì?
Lệnh ./set_permissions.sh all đặt lại quyền và quyền sở hữu cho tất cả tài khoản, thư mục, và file hệ thống trên DirectAdmin, bao gồm:
- Thư mục chính của người dùng (/home/user).
- File/thư mục trong public_html/private_html (do hệ thống quản lý).
- File cấu hình, log, email, và MySQL.
- Khi nào nên sử dụng lệnh ./set_permissions.sh domaindir domainname.com?
Sử dụng khi một domain cụ thể gặp sự cố (như lỗi 403 khi truy cập website). Lệnh này chỉ sửa quyền cho thư mục của domain được chỉ định (ví dụ: /home/user/domains/domainname.com). Thay domainname.com bằng tên miền thực tế. Đây là cách khắc phục cục bộ, tránh ảnh hưởng đến các domain khác.
- Tại sao script không sửa quyền các file do người dùng upload trong public_html?
Các file trong public_html/private_html do người dùng upload (như script WordPress, file config) có thể yêu cầu quyền đặc biệt (ví dụ: 644 cho file PHP, 600 cho wp-config.php). Script set_permissions.sh tránh thay đổi để không phá hủy cấu hình tùy chỉnh. Nếu cần sửa, bạn phải dùng File Manager hoặc lệnh chmod thủ công (ví dụ: chmod 644 /home/user/domains/domain.com/public_html/*.php).
- Có cần backup trước khi chạy các lệnh set_permissions.sh không?
Có, luôn backup trước khi chạy bất kỳ lệnh sửa quyền nào, đặc biệt là ./set_permissions.sh all, vì nó ảnh hưởng đến toàn bộ hệ thống. Bạn có thể sử dụng tính năng Create/Restore Backups trong DirectAdmin để tạo bản sao lưu tài khoản, file, và cơ sở dữ liệu. Nếu có lỗi, bạn có thể khôi phục dễ dàng.
- Tôi có thể chạy các lệnh này mà không cần quyền root không?
Không, các lệnh set_permissions.sh yêu cầu quyền root vì chúng can thiệp vào file hệ thống và tài khoản người dùng. Nếu bạn không có quyền root (ví dụ: chỉ là reseller hoặc user), hãy liên hệ quản trị viên server hoặc nhà cung cấp hosting để chạy lệnh.
Như vậy ở bài viết này iNET đã hướng dẫn cách đặt lại quyền trên DirectAdmin khi xảy ra sự cố.
Hi vọng bài viết trên giúp ích cho bạn, chúc các bạn thao tác thành công.