共享目录保持755权限

sudo tee /usr/local/sbin/permission_monitor.sh > /dev/null << 'EOF'

#!/bin/bash

# 目录权限监控脚本

# 用于确保指定目录及其子目录始终保持755权限

# 配置部分

TARGET_DIR="/data/share"  # 需要监控的目录路径

LOG_FILE="/var/log/permission_monitor.log"  # 日志文件路径

CHECK_INTERVAL=60  # 检查间隔(秒)

# 日志函数

log_message() {

    local message="[$(date '+%Y-%m-%d %H:%M:%S')] $1"

    echo "$message"

    echo "$message" >> "$LOG_FILE"

}

# 检查并修复权限的函数

check_and_fix_permissions() {

    local dir="$1"

    

    # 检查目录是否存在

    if [ ! -d "$dir" ]; then

        log_message "错误: 目录 $dir 不存在"

        return 1

    fi

    

    # 设置主目录权限

    if [ "$(stat -c '%a' "$dir")" != "755" ]; then

        log_message "设置目录权限: $dir -> 755"

        chmod 755 "$dir"

    fi

    

    # 递归检查子目录

    find "$dir" -type d | while read -r sub_dir; do

        if [ "$(stat -c '%a' "$sub_dir")" != "755" ]; then

            log_message "设置目录权限: $sub_dir -> 755"

            chmod 755 "$sub_dir"

        fi

    done

    

    # 可选: 设置文件权限为644

    find "$dir" -type f | while read -r file; do

        if [ "$(stat -c '%a' "$file")" != "644" ]; then

            log_message "设置文件权限: $file -> 644"

            chmod 644 "$file"

        fi

    done

    

    return 0

}

# 创建日志文件(如果不存在)

touch "$LOG_FILE"

chmod 644 "$LOG_FILE"

log_message "启动权限监控脚本,监控目录: $TARGET_DIR"

# 主循环

while true; do

    check_and_fix_permissions "$TARGET_DIR"

    sleep "$CHECK_INTERVAL"

done    

EOF

sudo chmod +x /usr/local/sbin/permission_monitor.sh

sudo tee /etc/systemd/system/permission-monitor.service > /dev/null << 'EOF'

[Unit]

Description=Directory Permission Monitor

After=network.target

[Service]

Type=simple

ExecStart=/usr/local/sbin/permission_monitor.sh

Restart=always

User=root

[Install]

WantedBy=multi-user.target

EOF

sudo systemctl daemon-reload

sudo systemctl start permission-monitor

sudo systemctl enable permission-monitor

默认分类 2025-06-20 13:19:05 通过 网页 浏览(59)

共有0条评论!

发表评论

更换一道题!
放大的图片