今天我安装了一台新的 ESX 7.0 Hypervisor 机器。我最初的目标是获得一些 RAID 状态报告。
我创建了一个我希望从 crontab 作业中运行的 python 脚本。这是因为我的 RAID 控制器(Supermicro 3108)的驱动程序有问题,并且存储设备上的所有监控状态都显示为未知。
我能够创建并运行我的 python 脚本并将其添加到 crontab。
/bin/kill $(cat /var/run/crond.pid)
/bin/echo '5 0 * * * /path/to/script > /full/path/to/logfile 2>&1' >> /var/spool/cron/crontabs/root
/bin/busybox crond
但是当我想让 crontab 更改在重新启动时保持不变时,我现在看到我无法写入 ESX 7.X 中的文件。
/etc/rc.local - write to permissions denied.
chmod xxxx /etc/rc.local - Operation not permitted.
我相信这涉及到:https ://kb.vmware.com/s/article/78689
我正在使用我的 root 用户并启用 ssh 登录。
有没有人有关于如何在 ESX 7.X 中重新获得文件权限的提示?
我同意其他关于不在 ESXi“内部”做任何事情的贡献,而是使用 PowerCLI 等受支持的工具远程管理它。
但是,我还想帮助您解决最初的问题:即使在 ESXi 7.0 中,仍然可以编辑某些文件,例如 /etc/rc.local.d/local.sh。该脚本将由 /etc/rc.local 执行,因此您可以在其中添加命令。
您只需要注意,如果您在主机上启用了 UEFI 安全启动,则不会执行此脚本。
ESXi 从来都不是,现在当然也不是一个通用 Linux,你应该在其中进行攻击,不幸的是,太多人选择忽略这一点并给自己和 VMware 提供支持问题 - 所以他们已经关闭了这扇门,或者至少尝试过,毫无疑问,一些聪明的亚历克会通过破解它来设法让他们的生活变得更加艰难,但你应该使用该产品,因为它应该被使用。
正如 Chopper3 所述,根据设计,您真的不应该在 vSphere 主机上运行除 ESXi 之外的任何东西。而这种新的安全措施正好符合这一点,因为锁定文件系统会带来巨大的安全性改进。
此外,请记住,在许多较大的环境中,ESXi 甚至可能没有持久存储,因为主机是通过 ESXi 的网络通过 PXE 引导的,并且只将它们需要的内容保存在 RAM 中。
解决这个问题的方法是使用您已经确定的 PowerCLI。