一、Linux 基础命令(安全相关核心)
Linux 是网络安全领域的核心操作系统(如渗透测试、日志分析、IDS 部署),掌握基础命令是后续安全实践的前提。以下是与网络安全强相关的高频命令及其用法,按功能分类整理:
1. 文件与目录操作
命令 | 功能描述 | 常用选项/示例 | 安全场景 |
ls | 列出目录内容 | ls -l(长格式显示权限/所有者)、ls -a(显示隐藏文件)、ls -h(人性化大小单位) | 查看目录下文件权限(如敏感文件是否被错误授权)、发现隐藏的恶意文件(如.bashrc后门)。 |
cd | 切换目录 | cd /var/log(进入日志目录)、cd ..(返回上级目录) | 快速定位日志文件(如/var/log/auth.log记录SSH登录)、分析攻击痕迹。 |
cp | 复制文件/目录 | cp source.txt dest.txt(复制文件)、cp -r dir1 dir2(递归复制目录) | 备份关键配置文件(如/etc/passwd)、保存攻击现场的日志副本。 |
mv | 移动文件/目录(或重命名) | mv old.log new.log(重命名)、mv log.txt /backup/(移动到备份目录) | 清理临时日志(避免被攻击者利用)、转移敏感文件到安全目录。 |
rm | 删除文件/目录 | rm test.txt(删除文件)、rm -rf dir/(强制递归删除目录,慎用!) | 清除恶意文件(如病毒脚本)、删除攻击者上传的非法文件(需确认权限)。 |
2. 文本处理与搜索
命令 | 功能描述 | 常用选项/示例 | 安全场景 |
cat | 查看文件内容 | cat /etc/passwd(查看用户账户信息)、cat app.log(查看应用日志) | 检查系统是否存在非法用户(如/etc/passwd中出现未知用户)、分析应用日志中的异常请求(如SQL注入)。 |
grep | 在文件中搜索关键词 | grep "Failed password" /var/log/auth.log(搜索SSH登录失败记录)、grep "malware" scan.txt(搜索恶意文件特征) | 定位攻击日志(如暴力破解尝试)、提取恶意软件的关键字符串(如C2服务器IP)。 |
find | 按条件搜索文件/目录 | find /tmp -name "*.sh"(查找/tmp目录下的Shell脚本)、find /home -mtime -1(查找24小时内修改的文件) | 发现可疑脚本(如攻击者上传的.sh后门)、追踪近期被篡改的配置文件。 |
tail | 查看文件末尾内容(实时监控) | tail -f /var/log/nginx/access.log(实时监控Nginx访问日志)、tail -n 50 app.log(查看最后50行) | 实时跟踪攻击流量(如异常IP频繁访问)、捕获攻击发生时的日志片段。 |
3. 进程与服务管理
命令 | 功能描述 | 常用选项/示例 | 安全场景 |
ps | 查看当前进程 | ps aux(显示所有进程)、`ps -ef | grep nginx`(过滤nginx进程) |
top/htop | 实时监控进程资源占用(CPU/内存) | top -c(显示完整命令)、htop(交互式界面,更直观) | 发现资源异常进程(如挖矿木马占用90% CPU)、定位高权限恶意进程(如以root运行的未知程序)。 |
systemctl | 管理系统服务(启动/停止/重启) | systemctl start nginx(启动Nginx)、systemctl stop sshd(停止SSH服务)、systemctl status firewalld(查看防火墙状态) | 关闭不必要的服务(如Telnet)、重启被攻击的服务(如被植入后门的Web服务)。 |
4. 网络与安全工具
命令 | 功能描述 | 常用选项/示例 | 安全场景 |
ping | 测试网络连通性 | ping -c 4 baidu.com(向百度发送4个ICMP包) | 检测目标是否存活(如攻击后确认服务器是否宕机)、识别ICMP洪水攻击(如大量无响应的Ping包)。 |
netstat | 查看网络连接、端口监听状态 | netstat -tunlp(显示TCP/UDP连接、监听端口及对应进程)、`netstat -an | grep 80`(查看80端口连接) |
ss | 更高效的网络状态查看工具(替代netstat) | ss -tunlp(功能同netstat -tunlp) | 快速定位高并发连接(如DDoS攻击时的异常流量)、分析恶意IP的连接状态(如大量ESTABLISHED连接)。 |
wget/curl | 下载文件/测试Web接口 | wget | 下载恶意样本(需在隔离环境中操作)、验证Web服务的安全性(如检查是否启用HTTPS)。 |
5. 权限与用户管理(安全核心)
命令 | 功能描述 | 常用选项/示例 | 安全场景 |
chmod | 修改文件/目录权限(重点!) | 见下文详细说明 | 限制敏感文件权限(如/etc/shadow仅允许root读写)、设置脚本可执行权限(如chmod +x script.sh)。 |
chown | 修改文件/目录的所有者和所属组 | chown root:wheel /etc/sudoers(将sudoers文件所有者改为root,组改为wheel) | 修复错误权限(如普通用户误拥有/etc/passwd的写权限)、确保关键文件仅由管理员控制。 |
二、chmod 权限设置(Linux 安全核心)
Linux 通过文件权限控制用户对文件/目录的访问,是防止未授权操作的核心机制。chmod(Change Mode)命令用于修改文件/目录的权限,需重点掌握。
1. 权限的基本概念
Linux 文件权限分为三部分:文件所有者(User,u)、所属组(Group,g)、其他用户(Others,o),每部分包含三种权限:
权限类型 | 符号表示 | 说明 |
读(Read) | r | 允许读取文件内容(文件)或列出目录内容(目录)。 |
写(Write) | w | 允许修改文件内容(文件)或创建/删除目录内文件(目录)。 |
执行(Execute) | x | 允许执行文件(如脚本、可执行程序)或进入目录(目录)。 |
2. 权限的两种表示方式
权限有两种表示方法:符号模式(rwx)和数字模式(八进制数),chmod命令支持两者。
(1)符号模式(u/g/o/a)
通过u(用户)、g(组)、o(其他)、a(所有用户)指定目标,结合+(添加权限)、-(移除权限)、=(设置权限)修改权限。
语法:
chmod [who][operator][permissions] file
示例:
- 允许文件所有者(u)添加写权限(+w):chmod u+w file.txt
- 移除所属组(g)的执行权限(-x):chmod g-x dir/
- 设置其他用户(o)仅有读权限(=r):chmod o=r file.sh
- 所有用户(a)添加执行权限(+x):chmod a+x backup.sh
(2)数字模式(八进制数)
每种权限对应一个八进制数(r=4,w=2,x=1,无权限=0),三部分权限值为三者之和,最终用三位八进制数表示(u/g/o)。
权限值计算:
- 读(r)=4,写(w)=2,执行(x)=1
- 示例:rwxr-x--- → u=4+2+1=7,g=4+0+1=5,o=0+0+0=0 → 数字模式为750
语法:
chmod [三位八进制数] file
示例:
- 设置文件所有者可读可写可执行(rwx=7),所属组可读可执行(r-x=5),其他用户无权限(---=0):chmod 750 script.sh
- 设置目录可读可写可执行(rwx=7),所属组和其他用户可读可执行(r-x=5):chmod 755 dir/
3. 特殊权限位(进阶)
除基本权限外,Linux 还支持特殊权限位(通过数字模式四位八进制数表示,第一位为特殊权限):
特殊权限位 | 八进制值 | 说明 | 安全风险 |
SUID(Set UID) | 4 | 文件执行时,临时拥有所有者的权限(如passwd命令修改/etc/shadow)。 | 恶意文件若设置SUID(如/usr/bin/sudo被篡改),攻击者可通过执行它获取root权限。 |
SGID(Set GID) | 2 | 文件执行时,临时拥有所属组的权限;目录下新建文件自动继承目录的所属组。 | 攻击者利用SGID目录上传恶意文件,使其属于高权限组(如wheel),间接获取权限。 |
Sticky Bit(粘滞位) | 1 | 仅允许文件所有者或root删除/重命名目录下的文件(如/tmp目录)。 | 防止普通用户误删他人文件,但无法阻止恶意用户删除自己的文件(需结合其他权限)。 |
示例:
- 设置/usr/bin/sudo的SUID位(八进制4755):chmod 4755 /usr/bin/sudo
- 设置/shared目录的SGID位(八进制2775):chmod 2775 /shared
- 设置/tmp目录的Sticky Bit(八进制1777):chmod 1777 /tmp
4. 安全最佳实践
- 最小权限原则:文件/目录仅授予必要权限(如配置文件仅允许root读写,普通用户仅可读)。示例:/etc/shadow(存储用户密码哈希)权限应为600(仅root可读写)。
- 限制可执行文件权限:避免普通用户拥有高权限脚本的执行权(如chmod 700 critical_script.sh)。
- 定期审计权限:使用ls -l检查关键文件权限(如/etc/passwd、/etc/sudoers),清理异常权限。
- 避免使用777权限:chmod 777(所有用户可读可写可执行)会严重暴露风险,仅在临时测试时使用。
5. 常见错误与注意事项
- 目录权限误区:目录的可执行权限(x)是“进入目录”的必要条件(无x权限时,即使有r权限也无法cd或ls目录内容)。
- 符号链接权限:chmod修改符号链接的权限时,实际修改的是目标文件的权限(符号链接本身权限无意义)。
- 权限继承:新建文件/目录的默认权限由umask(用户掩码)决定(如umask 022时,新建文件权限为644,目录为755)。
总结
Linux 基础命令是网络安全实践的“瑞士军刀”,chmod权限设置则是控制访问的核心工具。数通工程师可结合以下场景强化学习:
- 日志分析:用grep/tail快速定位攻击日志;
- 恶意文件处理:用chmod限制病毒脚本的执行权限;
- 系统加固:通过chmod/chown修复错误权限(如敏感文件被普通用户拥有写权限)。
熟练掌握这些命令后,可进一步提升渗透测试、应急响应等安全场景的操作效率。