我正在编写一个备份作业脚本,其中远程计算机连接到 ESXi 5 主机并执行 SCP 将文件复制到该主机上的另一个数据存储。
作为预防措施(因为每个可能出错的脚本都会出错)我想防止该脚本能够删除/移动/rm一个数据存储上的文件。
是否可以创建一个对一个数据存储具有 READONLY 权限,但对另一个数据存储具有 RW 权限的用户?
答案1
我想说不要直接在主机上执行此操作。ESXi 的 SSH 接口实际上并不是为这种事情而设计的,并且启用服务和 shell 将触发警报和警告,并始终显示在客户端中。是的,这些警报可以禁用,但它们的存在是有原因的。
我采取的方法取决于您计划进行备份的系统。
如果是 Windows,我会编写一些 PowerCLI 脚本并以此方式访问服务器。PowerCLI 有专门为此类事情构建的命令,几乎可以完成您能想到的任何操作。
如果是 Linux,那么 Perl 模块应该可以实现同样的事情,只需稍微修改一下即可。
其中一些假设它不仅仅是一个独立的 ESXi 主机,并且您可以利用 vCenter 授予特定用户一些细粒度的权限来执行这些任务。
我记不清独立主机上设置的权限模型是什么,但我怀疑您可以创建一个用户并执行相同的操作。至少这样,您的 ESXi 机器上就不会(可能)执行失控的 shell 脚本。