Tự động phân quyền domain Aapanel sử dụng OpenLiteSpeed

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
Từ khóa:

Bình luận

0 bình luận

  • Hãy là người đầu tiên để lại bình luận cho bài viết này!