笔记 linux-notes-overview

Linux 服务基础 · 全篇合并整理版(面试背诵版)

2026-10-19 约 12 分钟 课程笔记 · linux系统

来源:Linux 服务基础课程讲义(Linux服务基础笔记.pdf,共 11 页)。由 PDF 转为 Markdown 并抽取原文图片,仅整理排版与章节层级,正文内容未改写。

  • 按必背要点 / 表格对比 / 安全视角 / 高频面试题整理 · 源自实训课件

一、Linux 系统基础

1.1 Linux 起源(面试一句带过)

Unix 诞生于 1969 年贝尔实验室(Ken Thompson / Dennis Ritchie,C 语言之父);GNU 社区(斯托曼)提供开源软件但缺内核;1991 年芬兰人林纳斯·托瓦兹发布 Linux 内核,Linus 取名"Linux"(like Unix)。

1.2 主流派系(背熟)

派系代表发行版说明
Debian 系Ubuntu、KaliKali = 安全渗透必备系统
RedHat 系CentOS、RedHatRedHat 唯一靠操作系统盈利; CentOS 是它的免费版
其他SUSE、Arch 等了解即可

1.3 命令行提示符含义

必背

提示符含义
[root@localhost ~]#[当前用户名@主机名当前目录] #;# = 超级管理员 (root)
[user@localhost ~]$$ = 普通用户
~家目录(root 是 /root,普通用户是 /home/用户名)
/根目录,一切路径的起点

1.4 目录结构(面试常问)

必背

目录作用
/bin普通用户和管理员都能用的命令(ls、cd 等)
/sbin只有管理员可运行的系统命令(多数)
/etc配置文件目录(passwd、shadow、grub 等都在这)
/home普通用户的家目录
/rootroot 管理员的家目录
/tmp临时文件目录
/var存放日志(/var/log)、缓存等变化的数据
/dev设备文件(一切皆文件)
/proc内存中的虚拟目录,实时反映系统状态

1.5 基本命令(必会)

命令作用要点
cd切换目录cd .. 上一级;cd / 回根;cd ~ 回家
pwd显示当前路径
ls列出目录内容ls -a 含隐藏文件;ls -l 详细信息
mkdir建目录mkdir -p 一次性建多级
mv移动/重命名即"剪切",目录无需 -r
cp复制复制目录必须 cp -r
rm删除rm -rf 强制递归删除(高危!); rmdir 删空目录
cat查看文件内容
ln建立链接ln -s 软链接(快捷方式);ln 硬链接

绝对路径:以 / 开头(如 /tmp/nz2002.txt);相对路径:以当前位置为参照(./ 当前、../ 上一级)。

二、用户与组管理(面试重点)

2.1 用户分类与 UID 🔴必背

用户类型UID特点
超级用户 root0最高权限,不受权限限制
程序用户(伪用户)1~999用来启动程序/服务,权限极小, 不能登录系统,一般无家目录
普通用户1000~60000可登录系统,权限受限

2.2 用户相关文件(必背)

文件:三个核心文件,一切用户/组信息都在这里:

文件存什么关键字段
/etc/passwd账号信息用户名:密码占位符(x):UID:GID:描述:家目录:登录Shell
/etc/shadow密码信息(加密)用户名:密码(SHA512):最近修改天数:最小使用:最大使用:失效前警告: 非活跃期:失效日期:保留
/etc/group组账号信息组名:组密码占位符(x):GID:组成员

安全点:/etc/shadow 只有 root 能读,密码是 SHA512 二次加密存储;锁定用户的标志是密码字段前出现 !!。

2.3 用户管理命令(必背)

  • 命令

  • 作用

  • 常用选项

useradd 用户名创建用户-u 指定UID;-g 基本组;-G 附加组;-M 不建家目录;-s 指定 Shell(/sbin/nologin = 禁止登录)
passwd 用户名设置/修改密码-d 清空密码;-l 锁定;-u 解锁;-S 查看状态
usermod 用户名修改用户属性-u -g -G -s -L 锁定 -U 解锁
userdel 用户名删除用户-r 连同家目录一起删
id 用户名查看用户信息UID/GID/所属组
su 用户名临时切换用户不输用户名默认切 root

2.4 组管理命令

命令作用
groupadd 组名创建组(-g 指定GID)
groupmod -g 新GID 组名修改组ID
gpasswd -a 用户组把用户加入组
groupdel 组名删除组

2.5 高频面试题

(1)/etc/passwd 和 /etc/shadow 的区别?

  • passwd 存账号基本信息(可读),shadow 存加密密码(仅 root 可读,SHA512)。

(2)如何创建一个不能登录系统的用户?

  • useradd -s /sbin/nologin -M 用户名(-M 无家目录,-s 指定 nologin Shell)。

(3)锁定/解锁用户的方法?

  • passwd -l 锁定(shadow 密码前出现 !!)、passwd -u 解锁;或 usermod -L / -U。

(4)程序用户是什么?为什么存在?

  • UID 1~999,给程序/服务提供运行身份,权限最小化,不能登录,防止程序以 root 运行造成风

  • 险。

(5)删除用户时家目录怎么办?

  • userdel -r 连家目录一起删,否则会残留目录。

三、Vim 编辑器

3.1 三大工作模式(必背)

模式能做什么进入/返回
命令模式复制、粘贴、删除、定位、撤销 (默认进入)打开 vim 即命令模式
输入模式输入文字内容按 i 进入;按 Esc 返回命令模式

末行模式保存、退出、查找、替换等编辑命

  • 按 : 进入;执行完自动回命令模式令

3.2 末行模式常用命令(必背)

命令作用
:w保存
:wq保存并退出
:q!不保存强制退出
:set nu / :set nonu显示/取消行号
:/字符串向下查找(n 下一个,N 上一个)
:%s/old/new/g全文替换
:2,6s/old/new/g第 2~6 行替换
:r 文件名读取别的文件内容到当前

3.3 命令模式常用操作(必背)

操作作用
yy / yw复制当前行 / 复制一个单词
p粘贴到光标下方
dd / 10dd删除当前行 / 向下删 10 行
dw / x删除一个单词 / 删除光标处字符
gg / G / 100G跳到第一行 / 最后一行 / 第 100 行
u / Ctrl+r撤销 / 恢复撤销

3.4 别名 alias

alias cc=“ls -l” 临时生效;写入 ~/.bashrc 永久生效(source ~/.bashrc 立即生效);/etc/bashrc 是全局别名文件;unalias 取消。

四、进程管理(面试重点)

4.1 程序 vs 进程

程序是静态的、存在硬盘上的文件;启动后加载到内存被 CPU 运行,就叫进程。

4.2 开机流程(必背)

步骤做什么
1 BIOS加电自检,加载硬盘
2 MBR(主引导记录 446 字节)找引导程序
3 GRUB引导菜单,读配置文件加载内核
4 内核 + 驱动加载核心

5 systemd启动的第一个进程(PID=1),负责启动其他所有进

  • 程、决定进入哪个运行模式

4.3 systemctl 控制(必背)

命令作用
systemctl start 服务启动服务
systemctl stop 服务停止服务
systemctl restart 服务重启服务
systemctl enable 服务开机自启
systemctl disable 服务取消开机自启
systemctl status 服务查看状态
systemctl get-default / set-default查看/设置默认运行模式(图形/多用户字符)

4.4 进程查看与操作

命令作用
ps aux查看所有后台进程(静态快照)
top实时监控进程(M 按内存排、P 按CPU 排、k 杀死进程、q 退出)
kill PID / kill -9 PID结束进程 / 强制结束
命令 &后台运行
nohup 命令 &后台运行且不随终端退出而终止

4.5 高频面试题

(1)Linux 开机启动的第一个进程是什么?

  • systemd(PID=1),早期是 init。

(2)systemctl 和 service 的区别?

  • systemctl 是 systemd 的管理命令(新),service 是旧 init 时代的封装(老系统/兼容)。

(3)怎么让服务开机自启?

  • systemctl enable 服务名。

(4)kill 和 kill -9 区别?

  • kill 发 TERM 信号让进程正常退出;kill -9 发 KILL 信号强制杀死,可能丢数据。

五、IP 配置与网络(必背)

5.1 查看命令

命令作用
ip addr查看 IP 地址
ip route查看路由/网关
ip addr add IP dev 网卡名临时加 IP
nmcli connection up/down 网卡启用/停用网卡

5.2 静态 IP 配置文件(必背)

路径:/etc/sysconfig/network-scripts/ifcfg-eth0(网卡名可能不同,如 ifcfg-ens33)。

配置项含义
BOOTPROTO=static静态IP(dhcp=自动获取)
ONBOOT=yes开机自动启用
IPADDR=192.168.1.100IP 地址
NETMASK=255.255.255.0子网掩码
GATEWAY=192.168.1.1网关
DNS1=114.114.114.114首选 DNS

改完重启网络:systemctl restart network。DNS 也可写 /etc/resolv.conf(nameserver 114.114.114.114)。

5.3 路由转发(实验核心)

开启:Linux 默认不做路由转发(不做网关),要开启:

步骤命令
1 修改配置vim /etc/sysctl.conf 添加 net.ipv4.ip_forward = 1
2 立即生效sysctl -p

实验拓扑:Windows(192.168.2.x) ↔ 网关服务器(双网卡) ↔ CentOS(172.16.2.x),网关服务器开启ip_forward 后两边才能互通。

5.4 高频面试题

(1)怎么给 Linux 配静态 IP?

  • 编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,设

  • BOOTPROTO=static、IPADDR、NETMASK、GATEWAY、DNS1,然后 systemctl restart

  • network。

(2)Linux 怎么做路由器/网关?

  • 开启内核路由转发:/etc/sysctl.conf 设 net.ipv4.ip_forward=1,sysctl -p 生效。

(3)ip addr 和 ifconfig 区别?

  • ip addr 是新 iproute2 工具;ifconfig 是老 net-tools,CentOS7 默认没装。

六、日志服务 rsyslog(安全重点)

6.1 常见日志文件(必背)

  • 文件

  • 记录什么

/var/log/messages系统常规信息、报错(通用日志)
/var/log/secure安全/认证日志(SSH 登录、sudo 都记这,最常看)
/var/log/cron计划任务日志
/var/log/maillog邮件日志
/var/log/boot.log开机日志

6.2 日志规则格式

格式:配置文件 /etc/rsyslog.conf,规则格式:facility.priority 动作(记到哪里)。

部分含义例子
facility(类型)哪个服务的日志authpriv、cron、mail、kern、d aemon
priority(级别)什么级别才记info、err、emerg
动作记到哪/var/log/secure、@IP、用户、*

6.3 日志级别(从低到高,必背)

debug < info < notice < warn/warning < err/error < crit < alert < emerg(emerg 最严重,系统崩溃)。

例子:authpriv.* /var/log/secure 表示 authpriv 服务所有级别都记到 secure;*.info;mail.none 表示所有 info 以上但排除 mail。

6.4 远程日志服务器(日志异地备份)

端配置
客户端规则里加 . @@服务器 IP:514(@@=TCP,@=UDP),重启 systemctl restart rsyslog
服务器/etc/rsyslog.conf 打开 imudp/imtcp 模块监听 514 端口,重启

6.5 清理痕迹(渗透/应急都懂)

history -c 清历史命令;echo "" > /var/log/secure 清登录日志;last -f /var/log/wtmp 查看登录记录。

6.6 高频面试题

(1)SSH 登录日志在哪个文件?

  • /var/log/secure(记录认证成功/失败、sudo 等安全事件)。

(2)rsyslog 规则格式是什么?

  • facility.priority 动作,如 authpriv.* /var/log/secure。

(3)日志级别从低到高?

  • debug→info→notice→warn→err→crit→alert→emerg。

(4)日志怎么异地备份?

  • 配置 rsyslog 客户端 . @@服务器:514,服务器开 514 监听,实现实时转发。

七、系统加固

7.1 GRUB 引导加密(防进单用户模式改密码)

步骤命令/文件
1 生成密码grub2-mkpasswd-pbkdf2(生成 PBKDF2 哈希)
2 配置用户编辑 /etc/grub.d/01_users:set superusers=“root”; password_pbkdf2 root 哈希
3 重新生成配置grub2-mkconfig -o /boot/grub2/grub.cfg
4 重启验证进入 GRUB 菜单必须先输用户名密码

注意:/boot/grub2/grub.cfg 是生成文件不能直接改,要改 /etc/grub.d/ 下的源文件再重新生成。

7.2 其他加固点

关闭 SELinux(/etc/selinux/config 设 SELINUX=disabled);关闭防火墙(systemctl stop firewalld / disable);及时打补丁;最小权限原则。

八、Web 服务部署(LNMP / Tomcat)

8.1 LNMP 架构(必背)

架构:LNMP = Linux + Nginx + MySQL + PHP。核心考点:nginx 本身不能解析 PHP,要靠 php-fpm。

组件作用
NginxWeb 服务器,处理静态请求,高并发、负载均衡
php-fpmPHP 的解释服务进程,监听 9000 端口
MySQL数据库
PHP动态脚本语言

工作流程:浏览器 → Nginx →(把 .php 请求转发)→ php-fpm(9000) 解析后返回 → Nginx → 浏览器。

8.2 Nginx 关键配置(必背)

nginx.conf 中解析 PHP 的 location 配置:

配置项作用
location ~ .php$匹配 .php 结尾的请求
fastcgi_pass 127.0.0.1:9000转发给 php-fpm 的 9000 端口
fastcgi_index index.php默认首页
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name告诉 php-fpm 脚本真实路径(排错关键)

改完配置:nginx -s reload 平滑重载(不用停服务)。

8.3 File not found 排错(面试加分)

原因:SCRIPT_FILENAME 路径配置错误(默认 /scripts$fastcgi_script_name 不存在)。修复:改为 $document_root$fastcgi_script_name,或修改 php-fpm 配置 /etc/php-fpm.d/www.conf 中属主属组与 nginx 一致,重启 php-fpm。

8.4 Tomcat 部署与渗透(必背)

要点内容
端口默认 8080
特点Java 应用服务器,发布 JSP/WAR 包
环境先装 JDK 再装 Tomcat
启动./bin/startup.sh(Linux)/ tomcat8 start(Windows)

渗透:Manager 弱口令 getshell 链路(面试经典):

步骤操作
1 开放远程访问改 webapps/manager/META-INF/context.xml 允许所有 IP
2 配账号/conf/tomcat-users.xml 添加 manager-gui 等角色和用户(如 tomcat/tomcat)
3 登录 Manager访问 /manager/html 弱口令登录
4 传马把 JSP 大马打成 WAR 包(jar cvf shell.war shell.jsp)上传部署
5 getshell访问 http://IP:8080/shell/shell.jsp

8.5 高频面试题

(1)Nginx 为什么不直接解析 PHP?

  • Nginx 是 Web 服务器不内置 PHP 解释器,需要把 .php 请求通过 fastcgi 转发给 php-fpm(9000)处理。

(2)Nginx 改配置后怎么生效?

  • nginx -s reload 平滑重载,不中断服务。

(3)LNMP 和 LAMP 区别?

  • LNMP 用 Nginx,LAMP 用 Apache;Nginx 高并发更强。

(4)Tomcat 弱口令 getshell 流程?

  • manager 开放远程+配账号 → 登录 Manager → 上传 JSP 大马 WAR 包 → 访问 getshell。

九、渗透实战链路(靶机项目提炼)

9.1 通用渗透流程(必背)

阶段操作工具
1 信息收集网段扫描、全端口+服务扫描nmap -sP 网段;nmap -A -p- IP
2 目录扫描扫敏感目录、后台、备份文件dirb、dirsearch、nikto
3 漏洞发现识别中间件/CMS 版本找对应漏洞searchsploit、wpscan、msf
4 漏洞利用拿 WebShell / 反弹 Shellmsf、python 脚本、蚁剑
5 权限提升SUID / sudo / 内核提权拿 rootfind、sudo -l、searchsploit

9.2 提权方法(必背)

方法原理/操作
SUID 提权find / -perm -u=s 找 SUID 程序,利用 find -exec 执行命令
sudo 提权sudo -l 看当前用户能免密执行什么,配合 GTFOBins 找利用(如 sudo git、sudo php)
内核提权系统版本老、未打补丁,用 searchsploit 找内核漏洞利用脚本编译执行

9.3 靶机实战要点(简历可写)

靶机核心考点
DC-1Drupal 7(Drupalgeddon CVE-2014-3704)SQL 注入建管理员;mysql 读配置/改密码;find SUID 提权
DC-2cewl 生成密码字典;wpscan 枚举爆破 WordPress; rbash 绕过(BASH_CMDS / vi shell);sudo git 提权
Node用户枚举、源码泄露、base64 解码、fcrackzip 爆破压缩包、SSH 登录、内核提权
Me源码泄露、sudo -l 配合 GTFOBins(sudo php -r 执行命令)提权

rbash 绕过思路:BASH_CMDS[a]=/bin/bash 然后 a,或 vi 里 :set shell=/bin/bash | shell;再补PATH 环境变量。

附录:Linux 必背速查(考前 5 分钟)

主题一句话
用户文件/etc/passwd(账号)、/etc/shadow(密码)、/ etc/group(组)
root UID0;程序用户 1-999;普通用户 1000+
禁登录useradd -s /sbin/nologin -M
开机第一进程systemd(PID=1)
服务自启systemctl enable 服务
静态IPifcfg-eth0:BOOTPROTO=static + IPADDR/NETMASK/GATEWAY/DNS1
路由转发net.ipv4.ip_forward=1 + sysctl -p
登录日志/var/log/secure
日志级别debug<info<notice<warn<err<crit<alert<emerg
Nginx+PHPfastcgi_pass 127.0.0.1:9000 交给 php-fpm
Tomcat8080;manager 弱口令传 WAR getshell
提权三招SUID(find -exec)、sudo(GTFOBins)、内核提权
← 回到笔记列表