我注意到我的系统正在执行一个未知的 mysqldump 命令。但我尚未配置我的系统来执行该命令。以下是我执行 ps aux | grep mysqldump 时的输出
500 28651 0.0 0.0 7892 1852 ? Ss 00:26 0:01 /usr/bin/mysqldump --opt --default-character-set=utf8 --skip-extended-insert --allow-keywords --quote-names --compact --complete-insert --skip-lock-tables --quick --skip-comments --host=localhost --user=database_user --password=x xxxxxxxxxxxxxxxxxxx database atable
500 可能是我自己的用户帐户的 uid(并且唯一具有 bash 访问权限的用户帐户)
我已经尝试了所有方法,例如last
,history
和 cron 日志,但无法找到来源。
如何查找谁在我的系统上执行这个特定的命令?
更新:这是getent passwd 500
输出:
myusername:x:500:500::/home/myusername:/bin/bash
它再次发生了,现在我有更多信息
这是cat /proc/28126/status
Name: mysqldump
State: S (sleeping)
SleepAVG: 98%
Tgid: 28126
Pid: 28126
PPid: 28108
TracerPid: 0
FNid: 10048627
Uid: 500 500 500 500
Gid: 500 500 500 500
FDSize: 64
Groups: 500 501
这是输出ps auxf | grep mysqldump
500 28126 0.0 0.0 7892 1852 ? Ss 08:05 0:01 \_ /usr/bin/mysqldump --opt --default-character-set=utf8 --skip-extended-insert --allow-keywords --quote-names --compact --complete-insert --skip-lock-tables --quick --skip-comments --host=localhost --user=datebase_user --password=x xxxxxxxxxxxxxxxxxxx database anothertable
更新 2:这是输出ps aux | grep 28108
500 28108 0.1 0.0 10504 2024 ? S 08:05 0:04 sshd: myusername@notty
哦,看起来有人有 sshd,但是如何找到 IP?
答案1
getent passwd 500
应该会告诉您哪个用户的 uid 为 500。由于 tty 列是?,因此目前它似乎并未附加到特定登录。(尽管这可能意味着有人以交互方式启动了它,然后disown
对其进行了编辑。)
我想知道您是否在 cron 中安排了您不知道的备份。您可以使用crontab -l -u username
或检查该用户的 crontab cat /var/spool/cron/crontabs/username
,并检查目录,例如/etc/cron.d
/etc/cron.daily
/etc/cron.hourly
答案2
添加--forest
到您的ps
命令中。这将向您显示所有进程的父/子关系。然后您应该能够沿着树向上走,直到找到启动它的进程。