共享目录保持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条评论!