检测其他用户运行的 cron 任务

检测其他用户运行的 cron 任务

我目前正在通过星云挑战利用-exercises.com, 和挑战之一依赖于 cron 运行的脚本。

这是由另一个用户 (flag03) 运行的,而我登录的用户 (level03) 没有运行crontab -u flag03来查看作业的权限。

提示清楚地表明该脚本是由 cron 运行的。此外,它是目录中唯一的脚本/home/flag03,因此我们可能会进一步调查。

然而,如果这是现实世界,我就不会知道这个脚本是由 cron 运行的。

因此,问题是,我如何从非特权用户的角度检测任务正在运行?

我已经尝试过以下方法:

while true; do ps au | grep <scriptname> | grep -v grep; done;

这使我能够看到运行很长一段时间的进程,但不能看到几乎立即退出的进程。它还假设我知道脚本的名称。

具体环境是Ubuntu。我无法使用 apt-get,但可以访问 gcc。

有任何想法吗?

答案1

Ubuntu 哪个版本?如果它使用systemd,您可以依赖由我cron创建的 cgroup ,因为由 启动的所有进程都将是直接子进程。systemdcron

获取此信息的选项之一是使用 ps 命令,例如:

ps -eo user,pid,cmd,unit | grep cron.service | grep flag03

答案2

你不能。您可以获得的最接近的是:

inotifywait -m /home/flag03/script

这不会显示执行情况,但会显示何时script打开或访问。

答案3

也许在 /proc/[0-9]+ 目录中使用 inotifywait 可以让您更好地了解短期运行的进程。

答案4

在这种特定情况下,该文件位于/var/spool/cron/crontabs/flag03,您可以使用该帐户读取它nebula

level03没有足够的权限来访问它。

相关内容