浅谈tee命令

📅 2026/8/14 12:56:30
浅谈tee命令
浅谈 Linux 中的 tee 命令tee是 Linux 系统中极其经典且实用的一个命令行工具。它的名字来源于水管工程中的T 型三通管T-splitter。在水管中三通管把一股水流分成两股在 Linux 终端里tee把标准输入stdin的数据分成两股一股输出到屏幕标准输出 stdout另一股写入到文件中。一、 基础用法如果你只使用重定向符号数据会写进文件但屏幕上就看不到了。而tee可以让你“边看边存”。覆盖写入ls-l|teeoutput.txt效果屏幕会显示ls -l的结果同时这些结果也会被覆盖写入output.txt。追加写入最常用添加-a(append) 参数类似于。echonew line|tee-aoutput.txt二、 CTF 与实战中的功能在 Web 安全实战或 CTF 靶机中tee出场率极高因为它能优雅地解决一个权限提升时经常遇到的“Permission denied” (权限拒绝)痛点。1. 经典报错场景假设你当前是一个普通用户但你需要向系统的核心文件如/etc/passwd甚至某些配置后门写入内容。你可能会直觉地加上sudosudoechohacker::0:0:::/bin/bash/etc/passwd结果终端提示无权限为什么会失败因为在这个命令中sudo只赋予了echo命令 root 权限但重定向符号 ()是由当前的 Bash Shell 解释执行的。你当前的 Bash 仍然是普通用户自然没有权限打开并写入/etc/passwd。2.tee的破局之法这个时候tee配合管道符|就成了标准答案echohacker::0:0:::/bin/bash|sudotee-a/etc/passwd原理echo以普通用户身份运行将字符串送入管道。管道另一端的tee是以sudo(root) 身份运行的因此它拥有修改/etc/passwd的无上权力前提是当前用户有执行sudo tee的权限。