如何设置文件B的权限模式与文件A一致并同步更新?
如何让文件B的权限始终与文件A保持一致?
一、单次同步权限
如果只是需要一次性将文件B的权限设置为与文件A相同,直接使用chmod命令的--reference参数即可:
chmod --reference=文件A 文件B
这个命令会读取文件A的权限模式(比如你提到的664),并将其完全应用到文件B上。
二、实时自动同步权限
上述命令只能完成单次同步,若要在文件A权限变化时自动更新文件B的权限,需要借助文件系统监控工具,这里推荐使用inotifywait(属于inotify-tools工具集):
先安装
inotify-tools:- Debian/Ubuntu系:
sudo apt install inotify-tools - RHEL/CentOS系:
sudo dnf install inotify-tools
- Debian/Ubuntu系:
编写监控脚本(比如命名为
sync-perms.sh):#!/bin/bash # 替换为实际的文件A和文件B路径 SOURCE="/path/to/文件A" TARGET="/path/to/文件B" # 先同步一次初始权限 chmod --reference="$SOURCE" "$TARGET" # 持续监控文件A的属性变化(包含权限变更),触发同步 while inotifywait -e attrib "$SOURCE"; do chmod --reference="$SOURCE" "$TARGET" echo "已同步$SOURCE的权限到$TARGET" done赋予脚本执行权限并运行:
chmod +x sync-perms.sh ./sync-perms.sh &加上
&可以让脚本在后台运行,若需要开机自动启动,可以将其配置为systemd服务或者添加到用户的启动项中。
内容的提问来源于stack exchange,提问作者user29564504
相关产品推荐
相关产品推荐

