如何解码audit日志的name字符串?

Linux基础

1 前言

一个问题,一篇文章,一出故事。
最近发现Oracle Linux的“/var/log/audit/audit.log”的日志是编码过的,范例如下:

type=PATH msg=audit(1770942123.541:476518800): item=1 name=2F6D79686F6D652F57575720434D44532043484F4F4C204F524720446174615F4C6973742E786C7378 inode=22020365 dev=fc:02 mode=0100666 ouid=1198203174 ogid=1198200513 rdev=00:00 obj=unlabeled nametype=CREATE cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0OUID="will@cmdschool.org" OGID=646F6D61696E207573657273407361652E62697A

本章目是寻求该日志的解码方法。

2 最佳实践

python3 -c 'import binascii; name="2F6D79686F6D652F57575720434D44532043484F4F4C204F524720446174615F4C6973742E786C7378"; print(binascii
.unhexlify(name).replace(b"\x00", b" ").decode("utf-8","replace"))'

可见如下显示,

/myhome/WWW CMDS CHOOL ORG Data_List.xlsx

范例解析如下:

- 代码实现将十六进制字符串转UTF-8文本
- 方法“binascii.unhexlify(name)”将十六进制字符串转为二进制字节串
- 方法“replace(b"\x00", b" ")”替换空字节为空格(这里实际无空字节,仅为兼容处理)
- 方法“decode("utf-8","replace")”将字节串解码为UTF-8字符串,无法解码的字符用?替代

参阅文档
===========
https://docs.python.org/3/library/binascii.html

没有评论

发表回复

Linux基础
如何升级onlyOffice documentServer?

1 前言 一个问题,一篇文章,一出故事。 最近遇到nextcloud升级后PDF文件打开报错的情况, …

Linux基础
如何安装部署Nacos单节点?

1 基础知识 1.1 软件简介 – Nacos是“Dynamic Naming and …

Linux基础
如何熟悉GitEgg框架?

1. 基础知识 1.1 框架简介 – GitEgg是一款开源免费的企业级微服务应用该开发 …