如何通过deluser命令实时追踪并监控用户删除操作?
- 内容介绍
- 文章标签
- 相关推荐
:实时监控 deluser 的迫切需求
在日常运维中,管理员经常面临以下痛点:
- ❓不清楚哪些使用者被误删或恶意删除。
- ❓删除操作发生后难还有时发现并回滚。
- ❓日志分散、缺乏统一入口,导致审计成本高。
- ❓合规检查要求保留完整的使用者变更记录。
针对这些痛点。这篇文章提供一套基于 deluser 命令的实时追踪与监控方案,让你在第一时间捕获、记录并响应使用者删除行为。
从方法一来看。借助 systemd‑journald 捕获 deluser 调用
systemd‑journald 是程序默认的日志守护进程,能够统一收集所有服务和内核事件。只要开启相应过滤,即可实时看到 deluser 的执行记录。
配置步骤
-
启用持久化日志
# 创建持久化目录 sudo mkdir -p /var/log/journal sudo systemd-tmpfiles --create --prefix /var/log/journal sudo systemctl restart systemd-journald -
实时查看 deluser 相关日志
# 持续跟踪并过滤 deluser 关键字 sudo journalctl -f | grep -i 'deluser' -
保存过滤后的日志供后期审计
# 将结果写入独立文件 sudo journalctl | grep -i 'deluser'> /var/log/deluser_audit.log
从方法二来看。使用 auditd 进行细粒度审计
auditd 能够记录对关键程序文件(如 /etc/passwd,/etc/shadow,/etc/group) 的所有读写操作,是实现合规审计的首选工具。
audit 规则示例
# 监控 passwd、shadow、group 文件的所有访问
sudo auditctl -w /etc/passwd -p warx -k user_deletion
sudo auditctl -w /etc/shadow -p warx -k user_deletion
sudo auditctl -w /etc/group -p warx -k user_deletion
# 可选:专门监控 deluser 命令本身
sudo auditctl -a always,exit -F path=/usr/sbin/deluser -F perm=x -F auid>=1000 -F auid!
=-1 -k deluser_exec
查询审计日志
# 查看最近的使用者删除事件
ausearch -k user_deletion --interpret | tail
# 或者只看 deluser 执行记录
ausearch -k deluser_exec --interpret | less
再看方法三。利用 inotify 实时监控文件程序变化
inotifywait/inotifywatch 能够在文件被修改、移动或删除时立即触发通知,非常适合对敏感文件做“秒级”监控。
监控关键文件示例脚本
#!/bin/bash
# 保存为 /usr/local/bin/watch_user_del.sh 并赋予执行权限
LOG=/var/log/inotify_user_del.log
inotifywait -m /etc/passwd /etc/shadow /etc/group \
-e modify。attrib,close_write,move,delete_self \
--format '%T %w %e %f' --timefmt '%F %T' |
while read TIME DIR EVENT FILE;do
echo "$TIME $DIR $EVENT $FILE">> $LOG
done &
* 将脚本加入程序启动项(如 /etc/rc.local),确保服务器重启后仍然生效。
说到方法四,登录状态变化
last 本身不能直接显示使用者被删除,但可以帮助我们确认:
- "被删除的账户是否仍有登录痕迹"
- "是否存在异常登录后紧接着执行了 deluser"
# 查看最近 10 条登录记录,并筛选特定使用者名
last -n 10 | grep 'test_user'
说到方法五,使用 grep+tail 快速定位日志中的 deluser 行为
If you know approximate time window or log file location。a simple pipeline can give you instant feedback.
# 实时追踪 /var/log/auth.log 中出现的 deluser 调用 sudo tail -F /var/log/auth.log | grep --line-buffered 'deluser'
常用方法与运维注意事项
- 统一日志存储:{systemd‑journald} 与 {auditd} 的日志建议集中转发到 SIEM 或远程日志服务器,以防本地磁盘被攻击者篡改。
-
# 使用 mailx 发邮件提醒 if grep -q 'deluser' <<"$LINE"; n echo "$LINE" | mailx -s "⚠️ DelUser 操作告警" fi
从“痛点”到“方法"
Combining systemd‑journald’s ease of use,auditd’s depth。and inotify’s immediacy gives you a multi‑layered defense against unnoticed user deletions. By implementing steps above you’ll turn vague fear of “someone might have deleted a critical account” into a concrete,auditable process—ensuring both security compliance and operational peace of mind.
:实时监控 deluser 的迫切需求
在日常运维中,管理员经常面临以下痛点:
- ❓不清楚哪些使用者被误删或恶意删除。
- ❓删除操作发生后难还有时发现并回滚。
- ❓日志分散、缺乏统一入口,导致审计成本高。
- ❓合规检查要求保留完整的使用者变更记录。
针对这些痛点。这篇文章提供一套基于 deluser 命令的实时追踪与监控方案,让你在第一时间捕获、记录并响应使用者删除行为。
从方法一来看。借助 systemd‑journald 捕获 deluser 调用
systemd‑journald 是程序默认的日志守护进程,能够统一收集所有服务和内核事件。只要开启相应过滤,即可实时看到 deluser 的执行记录。
配置步骤
-
启用持久化日志
# 创建持久化目录 sudo mkdir -p /var/log/journal sudo systemd-tmpfiles --create --prefix /var/log/journal sudo systemctl restart systemd-journald -
实时查看 deluser 相关日志
# 持续跟踪并过滤 deluser 关键字 sudo journalctl -f | grep -i 'deluser' -
保存过滤后的日志供后期审计
# 将结果写入独立文件 sudo journalctl | grep -i 'deluser'> /var/log/deluser_audit.log
从方法二来看。使用 auditd 进行细粒度审计
auditd 能够记录对关键程序文件(如 /etc/passwd,/etc/shadow,/etc/group) 的所有读写操作,是实现合规审计的首选工具。
audit 规则示例
# 监控 passwd、shadow、group 文件的所有访问
sudo auditctl -w /etc/passwd -p warx -k user_deletion
sudo auditctl -w /etc/shadow -p warx -k user_deletion
sudo auditctl -w /etc/group -p warx -k user_deletion
# 可选:专门监控 deluser 命令本身
sudo auditctl -a always,exit -F path=/usr/sbin/deluser -F perm=x -F auid>=1000 -F auid!
=-1 -k deluser_exec
查询审计日志
# 查看最近的使用者删除事件
ausearch -k user_deletion --interpret | tail
# 或者只看 deluser 执行记录
ausearch -k deluser_exec --interpret | less
再看方法三。利用 inotify 实时监控文件程序变化
inotifywait/inotifywatch 能够在文件被修改、移动或删除时立即触发通知,非常适合对敏感文件做“秒级”监控。
监控关键文件示例脚本
#!/bin/bash
# 保存为 /usr/local/bin/watch_user_del.sh 并赋予执行权限
LOG=/var/log/inotify_user_del.log
inotifywait -m /etc/passwd /etc/shadow /etc/group \
-e modify。attrib,close_write,move,delete_self \
--format '%T %w %e %f' --timefmt '%F %T' |
while read TIME DIR EVENT FILE;do
echo "$TIME $DIR $EVENT $FILE">> $LOG
done &
* 将脚本加入程序启动项(如 /etc/rc.local),确保服务器重启后仍然生效。
说到方法四,登录状态变化
last 本身不能直接显示使用者被删除,但可以帮助我们确认:
- "被删除的账户是否仍有登录痕迹"
- "是否存在异常登录后紧接着执行了 deluser"
# 查看最近 10 条登录记录,并筛选特定使用者名
last -n 10 | grep 'test_user'
说到方法五,使用 grep+tail 快速定位日志中的 deluser 行为
If you know approximate time window or log file location。a simple pipeline can give you instant feedback.
# 实时追踪 /var/log/auth.log 中出现的 deluser 调用 sudo tail -F /var/log/auth.log | grep --line-buffered 'deluser'
常用方法与运维注意事项
- 统一日志存储:{systemd‑journald} 与 {auditd} 的日志建议集中转发到 SIEM 或远程日志服务器,以防本地磁盘被攻击者篡改。
-
# 使用 mailx 发邮件提醒 if grep -q 'deluser' <<"$LINE"; n echo "$LINE" | mailx -s "⚠️ DelUser 操作告警" fi
从“痛点”到“方法"
Combining systemd‑journald’s ease of use,auditd’s depth。and inotify’s immediacy gives you a multi‑layered defense against unnoticed user deletions. By implementing steps above you’ll turn vague fear of “someone might have deleted a critical account” into a concrete,auditable process—ensuring both security compliance and operational peace of mind.

