仅同步文件权限* *

问题描述 投票:7回答:1

一个初级团队成员在chmod -R 777做了令人讨厌的/etc/,导致SSH无法在Ubuntu服务器上远程登录。现在我通过比较其他正常系统手动设置/etc/ssh/*/etc/sudoers/etc/ssl/*上的正确文件权限来修复此登录问题。但是还有很多其他文件可能会导致未来的问题。

我正在考虑使用rsync来完成工作,但不希望它同步文件内容,只是权限,不再需要工作。

那可能吗?我看到rsync有-a选项,但它做得太多了。

file-permissions rsync chmod chown
1个回答
12
投票

如果你在同一个系统上有/ etc的“正常”内容(比如安装在其他目录中,让我们说/mnt/correct/etc),你可以使用--reference参数来chmodchown命令,并将它与find结合使用“正常”目录:

$ cd /mnt/correct/etc
$ find . ! -type l -exec chown -v --reference='{}' /etc/'{}' \;
$ find . ! -type l -exec chmod -v --reference='{}' /etc/'{}' \;

(我假设您使用的是具有GNU coreutils版本chmod和chown的UNIX系统。)

"! -type l"中的find条件排除了符号链接,因为否则chmod将使用链接的权限来更改链接指向的文件(同样适用于chown)。

© www.soinside.com 2019 - 2024. All rights reserved.