如何以root身份通过命令行获取用户Firefox标签页的标题或URL?
root权限下通过命令行获取指定用户Firefox已打开标签页的URL与标题
可以实现,核心是解析Firefox存储运行时会话的定制压缩格式json文件,具体操作步骤如下:
前提说明
- 操作全程持有root权限,目标用户的Firefox处于运行状态;若Firefox已关闭,可读取上次退出时保存的会话备份文件
- Firefox的用户配置目录默认路径为
/home/目标用户名/.mozilla/firefox/随机字符串.default-release/,可执行以下命令快速获取对应配置目录名:grep "Path=" /home/目标用户名/.mozilla/firefox/profiles.ini | cut -d'=' -f2
操作步骤
1. 准备jsonlz4格式解码工具
Firefox的会话存储使用定制的lz4压缩格式,头部带有8字节的mozLz40标识,无法用普通lz4工具直接解压,可使用如下Python脚本实现解码,保存为mozlz4_decode.py:
import sys import lz4.block if len(sys.argv) < 3: print(f"Usage: {sys.argv[0]} <input.jsonlz4> <output.json>") sys.exit(1) with open(sys.argv[1], 'rb') as f_in: f_in.seek(8) decompressed = lz4.block.decompress(f_in.read()) with open(sys.argv[2], 'wb') as f_out: f_out.write(decompressed)
运行前先安装依赖:pip install lz4
2. 导出并解码会话文件
当前运行中Firefox的最新会话数据存放在配置目录下的sessionstore-backups/recovery.jsonlz4,先复制文件到临时目录避免读取锁冲突:
cp /home/目标用户名/.mozilla/firefox/你的配置目录名/sessionstore-backups/recovery.jsonlz4 /tmp/
执行解码操作:
python3 mozlz4_decode.py /tmp/recovery.jsonlz4 /tmp/recovery.json
如果Firefox处于关闭状态,将上述路径替换为配置目录下的sessionstore.jsonlz4即可。
3. 提取标签页URL与标题
推荐使用jq工具快速解析json内容,先按你的发行版安装对应包,比如Debian/Ubuntu下执行apt install jq。
- 提取所有标签页URL:
jq '.windows[].tabs[].entries[-1].url' /tmp/recovery.json - 提取所有标签页标题:
jq '.windows[].tabs[].entries[-1].title' /tmp/recovery.json - 同时输出标题与URL,格式化展示:
jq -r '.windows[].tabs[].entries[-1] | "标题: \(.title)\nURL: \(.url)\n-------------------------"' /tmp/recovery.json
注意事项
- 即使持有root权限,也建议先执行
su - 目标用户名切换到对应用户执行文件读取操作,避免触发Firefox的文件锁保护导致读取到损坏的会话数据 - 以上方法适配Firefox 57及以上的Quantum版本
内容的提问来源于stack exchange,提问作者Xetolone
相关产品推荐
相关产品推荐

