假设有两台新安装的专用服务器,两台服务器上都有相同的软件和用户。
假设出于某种原因,我想将所有权模式从其中一台服务器复制到另一台服务器。这可能吗?
答案1
第一段几乎没有任何意义,但你的实际问题是:
我可以使用另一台服务器作为参考/模板来恢复和设置文件权限和所有权吗?
简短的回答是:也许......
更详细的答案是,对于两个服务器上都不存在的每个文件,这种策略都会失败。就脚本而言,您需要特别小心处理特殊文件、(符号)链接、文件/目录名称中的特殊字符等。
但是chmod
和chown
命令都支持--reference
标志。您可以指向现有文件并chmod
使用该文件的权限,而无需在更改文件模式时提供 MODE 值。
同样,chown
将使用该参考文件/目录的所有者和组,而不是指定 OWNER:GROUP 值。
那么练习如下:
- 将您需要的源、参考目录树作为模板提供给目标服务器。(如果您有足够的空闲空间,只需复制源目录,同时保留所有权和模式设置,或者使用 NFS 导出源目录树并将其挂载为模板。)
- 然后运行这些粗略的
find
命令来执行chown
和chmod
:
(请注意,这些只是概念性的,未经测试。请添加限制, find
例如仅定位文件和目录,并忽略以下符号链接等...)
要重置损坏的所有权和模式/etc/
:
cd /template/etc
find . -exec chmod -v --reference='{}' /etc/'{}' \;
find . -exec chown -v --reference='{}' /etc/'{}' \;