如何编辑只有远程硬盘且没有 chroot 的 root 的 crontab?

如何编辑只有远程硬盘且没有 chroot 的 root 的 crontab?

案例场景:

  • 我已收到硬盘一个遥控器的Linux(比如基于 Debian 的)计算机。
  • 远程硬件(例如覆盆子,所以ARM)与我的(比如PC,所以AMD64)不兼容,所以chroot不可能。
  • 我需要添加CRON 任务(说出一些adduser newuser命令)具有远程系统的管理员权限。
  • 我们可以假设分区格式与 *NIX 兼容(比如Ext3Ext4),所以我可以安装,读取并编辑根分区(例如Raspbian,用于 Raspberry 的常见类似 Ubuntu 的操作系统)。

编辑硬盘(例如 Micro SD 卡,只要示例是基于 RaspBerry 的)后,我将用它启动远程系统,并且我的 CRON 任务必须执行。

这可以做到吗?

答案1

对的,这是可能的。系统范围的crontab文件通常位于 ,/etc/crontab并覆盖在/etc/cron.d,因此假设您已将远程计算机磁盘的根分区安装在/mnt,您应该能够找到它们/mnt/etc/crontab并使用您选择的文本编辑器进行修改。

每个用户的crontab文件通常位于/var/spool/cron/crontabsDebian 及其衍生版本中,您应该能够以相同的方式编辑它们(尽管 crontab 的联机帮助页不鼓励这样做)。

答案2

Crontab 是存储在标准位置的简单文本文件,然后由cron.该crontab程序允许您编辑这些文件,但在保存之前检查格式是否正确。我想它也向cron守护进程发出信号来读取新版本。

所以这个机制主要是为了在你犯错误时不让你陷入困境。 (它也是 setgid,因此它可以编辑标准目录中的 crontab。)但是,如果您知道格式正确,则没有什么可以阻止您直接编辑 crontab,尤其是在没有 cron 使用它们的已安装驱动器上。

用户 crontab 存储在 中/var/spool/cron/crontabs/,文件名与帐户名对应。但是您可能想使用 AdminBee 提到的系统 crontab,即/etc/crontab或 (以保持组织有序)内部/etc/crontab.d/。在 Debian 上,还有/etc/cron.monthly//etc/cron.weekly//etc/cron.daily/、 和/etc/cron.hourly/,您可以在其中放置可执行文件(主要用于软件包,但自己使用它们没有任何问题)。

注意我使用我的 Debian 机器和联机帮助页作为参考,请事先检查您的目标发行版的这些路径。

相关内容