仅同步文件权限**

kyr*_*rre 10 rsync file-permissions chmod chown

初中队员做了一个讨厌chmod -R 777/etc/和SSH原因无法在Ubuntu的服务器远程登录.现在,我解决了这个问题,登录通过手动设置正确的文件权限/etc/ssh/*,/etc/sudoers,/etc/ssl/*通过比较其他系统正常.但是还有很多其他文件可能会导致未来的问题.

我想使用rsync来完成工作,但不希望它同步文件内容,只是权限,没有更多的工作.

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

Ole*_*kiy 15

如果你在同一个系统上有/ etc的"正常"内容(比如安装在其他目录中,比方说/mnt/correct/etc),你可以使用--reference参数to chmodchown命令,并将它与find从"普通"目录启动的那个结合起来:

$ cd /mnt/correct/etc
$ find . ! -type l -exec chown -v --reference='{}' /etc/'{}' \;
$ find . ! -type l -exec chmod -v --reference='{}' /etc/'{}' \;
Run Code Online (Sandbox Code Playgroud)

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

"! -type l"病情find不包括符号链接,否则chmod将使用链接的权限来更改文件的链接点(和同样适用于chown).

  • 这非常有效,但我只是想指出,您应该在执行“chmod”之前“chown”,因为 chown 会清除 setuid/setgid 位。 (2认同)