[THM] Linux基础命令与权限笔记
Linux基础命令与权限笔记
这篇内容整理自我的 Linux 学习笔记,重点放在靶场和日常渗透测试最常用的命令上。
一、终端与身份
echo
- 作用:输出文本。
- 示例:
echo "hello"
whoami
- 作用:查看当前登录用户。
- 示例:
whoami
二、目录与文件浏览
ls
- 作用:列出目录内容。
- 常用参数:
-l:长列表显示(权限、属主、大小、时间)-a:显示隐藏文件-h:配合-l友好显示大小-t:按修改时间排序-S:按文件大小排序-R:递归显示子目录
cd
- 作用:切换目录。
- 常用写法:
cd 目录名:进入目录cd ..:返回上级cd ~或cd:回到家目录cd -:返回上一次目录
pwd
- 作用:显示当前完整路径。
- 示例:
pwd
cat
- 作用:查看文件内容。
- 常用参数:
-n:显示行号-b:仅给非空行编号-s:压缩连续空行-A:显示特殊字符
三、文件查找与过滤
find
- 作用:按名称、类型、大小、时间、权限等条件查找文件。
- 使用提醒:
- 如果不写起始路径,通常默认从当前目录
.开始查找 -name "*.log"这类模式建议加引号,避免被 shell 先展开- 在靶场里经常会配合
2>/dev/null屏蔽无权限访问报错 - 常用示例:
1
2
3
4
5
6
7
8find . -name "*.log"
find . -iname "*.jpg"
find . -type f -size +10M
find . -mtime -1
find . -perm 644
find . -name "*.log" -exec ls -lh {} \;
find / -perm -4000 2>/dev/null
find . -type f -name "*.conf" -exec grep -Hn "password" {} \; 2>/dev/null
grep
- 作用:文本过滤与模式匹配。
- 常用参数:
-i忽略大小写-n显示行号-r递归搜索-v反向匹配-c统计匹配行数-E扩展正则-R递归搜索并跟随符号链接-A/-B/-C显示匹配前后文- 使用提醒:
-r和-R很像,但-R会更积极地跟随符号链接- 脚本里要注意退出码:匹配到是
0,未匹配到是1,出错是2 - 常用示例:
1
2
3
4
5
6grep -i "error" app.log
grep -rn "password" .
grep -v "^#" config.txt
grep -E "error|warning" app.log
grep -Rni --include="*.conf" "password" /etc
grep -A 2 -B 2 "failed" auth.log
wc
- 作用:统计文件信息。
- 示例:
wc -l access.log(统计行数)
按时间查看最近修改的文件
- 按 GNU Coreutils 手册,标准 POSIX 文件通常至少有 3 个时间戳:
atime:最后访问时间mtime:最后内容修改时间ctime:最后元数据状态变化时间- 有些文件系统还支持第 4 个时间:
birth time(创建时间)
常用查看方法:
1 | ls -lt |
- 补充理解:
ls -lt默认按mtime排序,最新修改的文件排在最前面ls -lt --time=ctime更适合看权限、属主、重命名等元数据变化ls -ltu按访问时间看最近被读取过的文件--time-style=long-iso和full-iso比默认时间格式更适合排查问题stat -c '%n %x %y %z %w'可以一次看文件名、访问时间、修改时间、状态变化时间和创建时间find -mtime 0的含义是“不到 24 小时前修改”,-mtime 1是“24 到 48 小时前修改”find -mmin适合更细粒度的分钟级筛选-daystart会把计算基准改成今天 00:00,更适合查“昨天改过的文件”-newermt可以直接按一个时间点筛选,-newer则是拿参考文件做比较
四、重定向与连接符
- Linux 命令通常围绕 3 个标准流工作:
stdin:标准输入(文件描述符0)stdout:标准输出(文件描述符1)stderr:标准错误(文件描述符2)>:覆盖写入文件>>:追加写入文件<:从文件读取输入2>:只重定向错误输出2>/dev/null:丢弃错误信息> file 2>&1:把标准输出和错误输出写入同一个文件&&:前一条成功才执行后一条;:无论前一条是否成功都继续执行&:命令放后台运行
示例:
1 | cat < note.txt |
- 补充理解:
- Bash 会按从左到右处理重定向,所以
cmd >file 2>&1和cmd 2>&1 >file结果不同 - 做信息收集时,
2>/dev/null很常见,可以减少权限报错对刷屏的影响
五、常用文件操作命令
touch
- 作用:创建空文件或更新时间戳。
- 常用参数:
-a:只改访问时间atime-m:只改修改时间mtime-d "时间":使用指定时间-t [[cc]yy]mmddhhmm[.ss]:使用固定时间格式-r 参考文件:复制参考文件的时间戳-c:只改已有文件,不创建新文件- 常用示例:
1
2
3
4
5
6
7touch note.txt
touch -m report.txt
touch -a access.log
touch -d "2026-03-29 12:00:00" note.txt
touch -t 202603291200.00 note.txt
touch -r ref.txt target.txt
touch -c existing.txt - 补充理解:
- 默认情况下,
touch会把文件时间戳设为当前时间 - 按 GNU Coreutils 手册,
touch可以直接修改的是atime和mtime ctime不能被手动指定为任意值,birth time也不能通过touch修改touch会按参数从左到右处理文件,所以前后两个文件的最终时间戳可能会有极小差异
mkdir
- 作用:创建目录。
- 常用示例:
mkdir -p a/b/c
cp
- 作用:复制文件或目录。
- 常用示例:
1
2
3cp file1.txt file2.txt
cp -r dir1 backup/
cp -av src/ dst/
mv
- 作用:移动或重命名文件。
- 示例:
1
2mv old.txt new.txt
mv file.txt docs/
rm
- 作用:删除文件或目录。
- 常用示例:
1
2
3
4
5rm file.txt
rm -r old_dir
rm -rf temp/
rm -I temp/*
rm -- -f - 注意:
rm -rf风险极高,务必确认路径。 - 补充说明:
rm -I会在大批量或递归删除前先进行一次确认- 如果文件名本身以
-开头,可以用--终止选项解析
file
- 作用:识别文件类型(文本、二进制、脚本、压缩包等)。
- 示例:
file sample.bin
stat
- 作用:查看文件的详细元数据,包括大小、权限、inode 和时间戳。
- 常用示例:
1
2stat note.txt
stat -c '%n %s %A %x %y %z %w' note.txt - 补充理解:
%x是最后访问时间atime%y是最后内容修改时间mtime%z是最后状态变化时间ctime%w是创建时间;如果文件系统不支持,通常会显示-
六、Linux权限模型
使用 ls -l 可看到如下权限位:
- 第 1 个字符表示文件类型:
-:普通文件d:目录l:符号链接p:命名管道s:套接字- 前三位:所有者(Owner)
- 中三位:用户组(Group)
- 后三位:其他用户(Others)
权限值:
r读(4)w写(2)x执行(1)
常见权限组合:
777:所有用户可读可写可执行755:属主可写,其他只读可执行700:仅属主可访问644:属主读写,其他只读
目录权限需要单独理解:
- 目录的
r:可以列出目录内容 - 目录的
w:可以在目录中创建、删除、重命名条目 - 目录的
x:可以进入目录并访问其中对象
补充说明:
- 所以“目录可写”和“文件可写”不是一回事
- 如果
ls -l权限串后面出现+或.,通常说明还有 ACL 或安全上下文,不只是简单的 9 位rwx
七、chmod、su 与 umask
chmod
- 作用:修改文件权限。
示例:
1
2
3
4
5
6chmod 755 script.sh
chmod 644 note.txt
chmod 750 system_overview.txt
chmod u+x script.sh
chmod g-w notes.md
chmod go-rwx private.txt补充理解:
- 数字法适合一次性整体设置,例如
755、644 - 符号法更适合精细修改,只改某一部分权限,不会把其他位一起覆盖
- 对目录来说,除了普通
rwx外,还可能涉及setgid等特殊位
常见特殊权限位:
setuidsetgidsticky bit- 典型例子:
/tmp常见权限为1777
su
- 作用:切换用户身份。
- 常见用法:
1
2
3su user2
su - user2
su -c "whoami" user2 - 说明:
su -会使用目标用户的登录环境,更接近真实登录状态。
umask
- 作用:控制新建文件和目录的默认权限。
- 常见用法:
1
2
3umask
umask -S
umask 022 - 理解方式:
umask 022的核心含义是去掉 group 和 other 的写权限- 新目录常见结果是
755 - 新普通文件常见结果是
644
八、学习建议(靶场向)
- 先掌握目录与文件操作:
ls/cd/pwd/cat - 再掌握检索与过滤:
find/grep/wc - 最后重点理解权限和身份切换:
chmod/su/umask - 任何危险命令(如
rm -rf)执行前先pwd确认路径
如果你也在刷 TryHackMe,建议把每次机器里用到的命令按“信息收集 -> 利用 -> 提权”三段整理,复盘效率会高很多。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Nuyoahのblog!
评论



![[HTB] Vaccine 渗透测试笔记](https://img.nuyoah.icu/post/postcover/1754957308525_a03c7988cfa9f6c64f900037f12b00d5.webp)