Bước 1: Cài inotify
yum install -y inotify-tools # hoặc apt install -y inotify-tools
Bước 2: Script theo dõi thư mục tự động phân quyền
nano /usr/local/bin/auto_chown_site.sh
Nhập nội dung
#!/bin/bash
WATCH_DIR="/www/wwwroot"
PANEL_OLS="/www/server/panel/vhost/openlitespeed/detail"
LOG_FILE="/var/log/auto_aapanel_ols.log"
echo "Đang theo dõi website mới trong $WATCH_DIR..." >> $LOG_FILE
inotifywait -m -e create -e moved_to --format "%f" "$WATCH_DIR" | while read DOMAIN
do
SITE_PATH="$WATCH_DIR/$DOMAIN"
CONF_FILE="$PANEL_OLS/$DOMAIN.conf"
# Bỏ qua nếu không phải thư mục
if [ ! -d "$SITE_PATH" ]; then
continue
fi
USER_NAME="${DOMAIN//./_}_user"
# Tạo user
if ! id "$USER_NAME" &>/dev/null; then
useradd -m -s /bin/bash "$USER_NAME"
echo "Tạo user $USER_NAME" >> $LOG_FILE
fi
# Mở khóa .user.ini
if [ -f "$SITE_PATH/.user.ini" ]; then
chattr -i "$SITE_PATH/.user.ini" 2>/dev/null
fi
# Phân quyền
chown -R "$USER_NAME:$USER_NAME" "$SITE_PATH"
# Khóa lại .user.ini
if [ -f "$SITE_PATH/.user.ini" ]; then
chattr +i "$SITE_PATH/.user.ini"
fi
# Chờ config OLS được aaPanel tạo
for i in {1..15}; do
[ -f "$CONF_FILE" ] && break
sleep 1
done
# ---- SỬA extUser/extGroup CHO aaPanel + OpenLiteSpeed ----
if [ -f "$CONF_FILE" ]; then
echo "Đang sửa extUser/extGroup cho $DOMAIN" >> $LOG_FILE
# đổi extUser
sed -i "s/^[[:space:]]*extUser.*/extUser $USER_NAME/g" "$CONF_FILE"
# đổi extGroup
sed -i "s/^[[:space:]]*extGroup.*/extGroup $USER_NAME/g" "$CONF_FILE"
echo "Đã cập nhật extUser/extGroup: $USER_NAME" >> $LOG_FILE
fi
# Restart OpenLiteSpeed
systemctl stop lsws
systemctl start lsws
echo "Restart OpenLiteSpeed" >> $LOG_FILE
done
Bước 3: Cấp quyền
chmod +x /usr/local/bin/auto_chown_site.sh
Bước 4: Tự chạy script khi boot server
nano /etc/systemd/system/auto-chown-site.service
Nhập nội dung:
[Unit] Description=Auto Chown Website Folder After=network.target [Service] Type=simple ExecStart=/usr/local/bin/auto_chown_site.sh Restart=always [Install] WantedBy=multi-user.target
Bước 5: Kích hoạt
systemctl daemon-reload systemctl enable auto-chown-site systemctl start auto-chown-site
