【问题标题】:Sync file permissions *only*同步文件权限*仅限*
【发布时间】:2015-06-21 06:11:01
【问题描述】:

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

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

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

【问题讨论】:

  • 你的问题是可能的,但恐怕不能使用 rsync。
  • 感谢您的回复,那是什么?我愿意接受其他工具。
  • 好吧,您可以编写一个脚本来读取一个系统上的文件属性并设置另一个系统上的属性。没什么神奇的。
  • 另见 fixunix.com 讨论开发一个将一组文件的权限应用于其副本的 shell 脚本

标签: file-permissions rsync chmod chown


【解决方案1】:

如果您在同一系统上拥有 /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 系统。)

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

【讨论】:

  • 这很好用,但我只是想指出你应该在 chown 之前 执行 chmod 因为 chown 将清除 setuid/setgid 位。
【解决方案2】:

请注意,您也可以尝试一些不一定会让您需要将文件从一个地方复制到另一个地方的方法(取决于可能需要的文件大小)

您可以混合使用 find 和一些 grepping 来生成要在需要修复权限的主机上执行的 shell 脚本。您也可以使用相同的方法生成用于更改用户/组的脚本。 .例如:

# find . -printf 'chmod %m %p #%M\n' | sort -k3 | grep -Pi '\s+\S*s\S*$'  > /var/tmp/fix_permissions.bash 
# bash /var/tmp/fix_permissions.bash

在上面的例子中,它的作用是以这种格式列出所有文件及其属性:

chmod 2755 ./addfs_7.1.0/bin #drwxr-sr-x
chmod 2755 ./addfs_7.1.0/config #drwxr-sr-x
chmod 2755 ./addfs_7.1.0 #drwxr-sr-x
chmod 2755 ./addfs_7.1.0/install #drwxr-sr-x
chmod 2755 ./addfs_7.1.0/library.dda #drwxr-sr-x
chmod 2755 ./addfs_7.1.0/library #drwxr-sr-x
chmod 2755 ./autosimimport #drwxr-sr-x

在我的例子中,我只想同步那些带有's'标志的,所以我用grep -Pi '\s+\S*s\S*$'过滤。排序也在那里,因为我必须比较其他主机中的文件。

TLDR

如果您只想应用所有权限而不进行过滤或比较:

  1. 在“基础”主机上创建具有正确权限的脚本

    find . -printf 'chmod %m %p\n' > /var/tmp/fix_permissions.sh

  2. 在另一台主机上执行脚本

    bash /var/tmp/fix_permissions.sh

【讨论】:

    猜你喜欢
    • 2016-06-18
    • 1970-01-01
    • 2020-11-05
    • 2020-08-12
    • 2018-10-11
    • 2017-02-12
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    相关资源
    最近更新 更多