在CentOS系统中,“Extract”通常指数据提取操作(如使用awk、sed、grep、cut等工具从文件中提取目标信息),而非专门的“目标受众分析工具”。因此,需结合系统日志、用户数据等源文件,通过提取关键信息并分析,间接实现目标受众的识别与画像构建。以下是具体流程:
目标受众分析需围绕用户身份、行为特征、权限级别三大核心维度展开,对应需要提取的关键数据包括:
/bin/bash等)。CentOS系统中,文本处理工具是提取数据的核心,常用工具及示例如下:
/etc/passwd文件)/etc/passwd是系统用户信息的存储文件,每行格式为username:x:UID:GID:GECOS:home_directory:shell。通过cut、awk等工具可快速提取关键字段:
cut -d: -f1,7 /etc/passwd
输出示例:root:/bin/bash、mk:/bin/bash(-d:指定分隔符为冒号,-f1,7表示提取第1列(用户名)和第7列(Shell))。awk -F: '$3>=1000 && $3!=65534 {print $1, $3, $7}' /etc/passwd
输出示例:mk 1000 /bin/bash(-F:设置字段分隔符,$3>=1000筛选UID≥1000的用户,$3!=65534排除nobody用户)。/var/log/secure文件)/var/log/secure(CentOS 7及以上)记录了用户登录、认证等安全日志。通过grep可提取登录成功或失败的记录:
grep "Accepted password" /var/log/secure | grep "$(date -d '7 days ago' +%b\ %d)"
输出示例:Oct 30 14:30:01 localhost sshd[1234]: Accepted password for mk from 192.168.1.100 port 22 ssh2(包含登录时间、用户名、IP地址)。awk '/Accepted password/ {print $1,$2,$9}' /var/log/secure | sort | uniq -c
输出示例:2 Oct 30 mk(表示10月30日用户mk登录2次)。~/.bash_history文件)每个用户的~/.bash_history文件记录了其执行的命令历史。通过遍历用户家目录,可提取所有用户的操作记录:
for user in $(cut -d: -f1 /etc/passwd); do
echo "User: $user"
ls -la /home/"$user"/.bash_history &>/dev/null && tail -n 10 /home/"$user"/.bash_history || echo "No history found"
done
输出示例:User: mk、tail: cannot open '/home/mk/.bash_history' for reading: No such file or directory(未找到历史记录的用户的提示)。提取数据后,需通过分类统计、模式识别等方法,构建目标受众画像:
root、bin、daemon),主要用于系统服务运行,无登录权限(Shell为/sbin/nologin或/bin/false);/bin/bash或/bin/zsh),是目标受众的核心群体。/var/log/secure中的登录记录,统计每个用户的登录次数,筛选出登录频率高的用户(如每日登录≥3次的用户);root Shell(如/bin/bash),或属于wheel组(可切换root权限);~/.bash_history识别危险命令(如rm -rf /、chmod 777 /),或频繁访问敏感目录(如/etc、/root)的用户。为提高效率,可将上述步骤编写为Shell脚本,并设置定时任务(cron)定期执行:
#!/bin/bash
# 提取普通用户信息
echo "===== Normal Users =====" > user_report.txt
awk -F: '$3>=1000 && $3!=65534 {print $1, $3, $7}' /etc/passwd >> user_report.txt
# 提取最近7天登录记录
echo -e "\n===== Recent Logins =====" >> user_report.txt
grep "Accepted password" /var/log/secure | grep "$(date -d '7 days ago' +%b\ %d)" >> user_report.txt
echo "Report generated: $(date)" >> user_report.txt
crontab -e
添加以下内容:0 2 * * * /path/to/user_analysis.sh
/var/log/wtmp(登录记录)、/proc文件系统(实时进程信息)等,获取更全面的用户行为数据;parallel工具并行处理(如加速日志分析),提升效率。通过以上步骤,可利用CentOS的Extract操作(文本处理工具),从系统数据中提取目标受众的关键信息,构建用户画像,为后续的营销策略、系统权限管理等提供数据支持。