我无意中递归备份了一个目录,但执行此操作时忘记了 -a (--preserve) 开关。这损坏了我的备份目录(其中包含我们需要访问的数据)。
该目录及其所有子文件夹和文件构成应用程序的安装,包括 postgress DB 和 solr 文件。原始副本用于失败的重新配置尝试。现在我需要使用备份重新开始,现在只有备份副本的所有权在所有内容中都是 root 并且它不再可用(由于我忘记了 cp -r 上的 -a 而导致的所有权问题,进程将无法运行)。
我已将应用程序的干净副本重新安装到第三个位置(该位置具有正确的所有者/权限),并且需要将所有者/权限从这个好目录复制到损坏的目录中。最好的方法是什么(如果可能的话)来做到这一点。
(我已经在 Google 上搜索过,从 perl 脚本到 setfacl/getfacl 都可以这样做,但不幸的是我仍然感到困惑)。如果这个问题看起来比较愚蠢,请原谅。谢谢。
答案1
要更改文件/目录的所有者,请使用 chown 命令。
例如 chown:
要更改文件/目录的权限,请使用 chmod 命令。
例如 chmod
还可以使用 -R 标志递归更改给定范围内的所有文件/文件夹的权限。