Linux系统管理实战:权限、进程与网络配置
1. Linux初学者笔记5从零开始的系统管理实战刚接触Linux时那些黑底白字的终端窗口总让人望而生畏。但当你真正开始用命令行管理文件、安装软件、排查故障时会发现这比图形界面高效得多。作为系列第五篇这次我们重点解决三个实际场景多用户权限管理、进程监控排错、网络配置调试。这些都是系统管理员日常必备技能也是面试常考内容。提示所有命令在Ubuntu 22.04 LTS实测通过其他发行版可能需要微调参数1.1 用户与权限的精细控制新建用户看似简单但生产环境中往往需要更复杂的配置。比如开发团队需要共享某个项目目录但又不希望他们随意删除彼此文件# 创建开发组并设置共享目录 sudo groupadd dev_team sudo mkdir -p /projects/alpha sudo chown :dev_team /projects/alpha sudo chmod 2775 /projects_alpha # 关键设置SGID位保持组继承这里chmod 2775中的2表示SGIDSet Group ID它确保在该目录下新建的文件自动继承父目录的组权限。实测时发现如果不设置这个标志即使用户属于dev_team组新建文件的组仍会是用户主组。权限问题90%的报错都源于umask值。通过umask -S查看当前掩码我习惯在~/.bashrc添加umask 002让同组用户默认有写权限。曾遇到过Apache无法写入日志文件的坑最后发现是父目录权限未继承# 递归修正权限继承 sudo find /var/log/apache2 -type d -exec chmod gs {} \;1.2 进程管理的核心技巧ps aux输出太多信息试试这个组合命令监控CPU占用前五的进程watch -n 1 ps -eo pid,user,%cpu,%mem,cmd --sort-%cpu | head -n 6参数解析-eo指定输出字段进程ID、用户、CPU占比等--sort-%cpu按CPU使用降序head -n 6显示前五行含表头watch -n 1每秒刷新遇到僵尸进程时常规kill无效。需要找到其父进程IDPPID然后重启父进程。记录个实用命令链# 查找所有僵尸进程及其父进程 ps -A -ostat,ppid | grep -e [zZ] | awk {print $2} | xargs -I{} ps -p {}1.3 网络配置与排错Ubuntu新版改用netplan配置网络典型yaml配置示例# /etc/netplan/00-installer-config.yaml network: version: 2 ethernets: enp3s0: dhcp4: false addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]应用配置时务必执行sudo netplan apply而非直接重启网络服务。曾因这个细节浪费两小时排查——新配置未生效时先用netplan --debug apply查看详细处理过程。当遇到Network is unreachable时按这个顺序排查ip link看网卡是否UPip route show检查默认路由ping 127.0.0.1测试本地协议栈traceroute 8.8.8.8定位断点2. 磁盘管理进阶操作2.1 LVM的灵活运用逻辑卷管理是Linux磁盘管理的精髓。新建PV/VG/LV的标准流程# 将/dev/sdb初始化为物理卷 sudo pvcreate /dev/sdb # 创建名为data_vg的卷组 sudo vgcreate data_vg /dev/sdb # 创建20G的逻辑卷并格式化为ext4 sudo lvcreate -L 20G -n data_lv data_vg sudo mkfs.ext4 /dev/data_vg/data_lv最实用的特性是在线扩容。当逻辑卷空间不足时# 先扩展逻辑卷大小无需卸载 sudo lvextend -L 5G /dev/data_vg/data_lv # 然后调整文件系统ext4/xfs命令不同 sudo resize2fs /dev/data_vg/data_lv重要XFS文件系统要用xfs_growfs命令且不支持缩小2.2 磁盘性能监控iostat -x 1是诊断IO瓶颈的利器关键指标解读%util设备繁忙百分比70%说明饱和awaitIO平均等待时间(ms)机械盘20ms需警惕svctm设备处理IO所需时间应与await对比发现某MySQL服务器响应慢通过iotop发现是备份脚本正在大量写盘。临时限制其IO速度ionice -c 3 -p $(pgrep backup_script)3. 自动化运维实战3.1 Shell脚本的健壮性写法初学者常犯的错误是不做异常检查。规范的脚本开头应该包含#!/bin/bash set -euo pipefail # 遇到错误立即退出/使用未定义变量报错/管道错误能被捕获 # 检查是否为root [[ $EUID -eq 0 ]] || { echo 必须使用root执行; exit 1; } # 检查必要命令是否存在 command -v jq /dev/null 21 || { echo 需要安装jq; exit 1; }日志记录推荐使用logger命令写入系统日志方便统一收集logger -t backup_script 开始执行全量备份3.2 定时任务的最佳实践crontab的常见误区及解决方案环境变量问题在命令前加载/etc/profile* * * * * . /etc/profile; /path/to/script.sh避免任务重叠使用flock文件锁*/5 * * * * /usr/bin/flock -xn /tmp/backup.lock -c /opt/scripts/backup.sh邮件报警设置在crontab首行指定MAILTOMAILTOadminexample.com4. 安全加固要点4.1 SSH安全配置修改/etc/ssh/sshd_config的几个关键参数PermitRootLogin no # 禁止root直接登录 PasswordAuthentication no # 强制密钥认证 MaxAuthTries 3 # 限制尝试次数 AllowUsers alice bob # 白名单用户配置完成后务必测试新会话能否登录再重启服务sshd -t systemctl restart sshd4.2 防火墙精细控制UFW的进阶用法示例# 允许特定IP访问3306端口 sudo ufw allow from 192.168.1.100 to any port 3306 proto tcp # 限制某IP的连接速率防暴力破解 sudo ufw limit proto tcp from 203.0.113.45 to any port 22 # 查看详细规则 sudo ufw show raw5. 性能调优速查5.1 内存优化参数在/etc/sysctl.conf中添加vm.swappiness10 # 减少swap使用倾向 vm.dirty_ratio40 # 系统级脏页比例阈值 vm.dirty_background_ratio5 # 后台回写触发阈值应用配置sysctl -p5.2 文件系统调优针对SSD的ext4挂载选项UUIDxxxx / ext4 defaults,discard,noatime,datawriteback 0 1关键参数说明discard启用TRIM功能noatime不更新访问时间戳datawriteback牺牲部分安全性换取写入性能6. 实用工具推荐6.1 终端多路复用器tmux基础工作流tmux new -s work # 创建会话 Ctrlb % # 垂直分屏 Ctrlb # 水平分屏 tmux a -t work # 重新接入会话6.2 日志分析神器journalctl的常用过滤方式# 查看最近10条内核日志 journalctl -k -n 10 # 追踪某个服务的日志 journalctl -u nginx -f # 显示包含ERR的日志支持正则 journalctl -p err..alert7. 常见故障处理实录7.1 只读文件系统修复当出现Read-only file system错误时检查磁盘错误dmesg | grep error强制fsck检查需卸载umount /dev/sda1 fsck -y /dev/sda1检查SMART状态smartctl -a /dev/sda7.2 套接字文件占用处理报错Address already in use时# 查找占用端口的进程 ss -tulnp | grep :80 # 强制释放端口慎用 fuser -k 80/tcp8. 内核模块管理8.1 动态加载驱动查看已加载模块lsmod加载指定模块modprobe module_name带参数加载示例echo options e1000e InterruptThrottleRate3000 /etc/modprobe.d/e1000e.conf systemctl restart systemd-modules-load8.2 DKMS管理第三方驱动以安装Realtek网卡驱动为例sudo apt install dkms sudo dkms add -m r8168 -v 8.050.03 sudo dkms build -m r8168 -v 8.050.03 sudo dkms install -m r8168 -v 8.050.039. 软件包管理技巧9.1 解决依赖冲突强制降级软件包的方法sudo apt-get install packageversion查看可用版本apt-cache madison package标记特定版本防止意外升级sudo apt-mark hold package9.2 本地仓库创建搭建简易APT仓库# 创建Packages.gz dpkg-scanpackages . /dev/null | gzip -9c Packages.gz # 客户端配置 echo deb [trustedyes] file:/path/to/repo ./ | sudo tee /etc/apt/sources.list.d/local.list10. 系统救援实战10.1 制作可引导救援盘使用Ventoy创建多系统启动盘# 下载并解压Ventoy wget https://github.com/ventoy/Ventoy/releases/download/v1.0.88/ventoy-1.0.88-linux.tar.gz tar zxvf ventoy-*.tar.gz # 安装到U盘确认设备路径正确 sudo ./Ventoy2Disk.sh -i /dev/sdX10.2 chroot环境搭建从LiveCD救援系统# 挂载原系统分区 mount /dev/sda1 /mnt mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys # 切换根环境 chroot /mnt /bin/bash # 修复引导 grub-install /dev/sda update-grub

相关新闻

3步掌握Krita AI绘画:从零基础到创意高手

3步掌握Krita AI绘画:从零基础到创意高手

3步掌握Krita AI绘画:从零基础到创意高手 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gitcode.com/gh_mirr…

2026/10/30 3:22:48 阅读更多 →
Selenium登录状态复用:Cookie与Storage持久化实战指南

Selenium登录状态复用:Cookie与Storage持久化实战指南

1. 项目概述:为什么我们需要“重复使用登录状态”? 如果你用过Selenium做自动化测试或者数据抓取,肯定遇到过这个让人头疼的场景:每次脚本启动,浏览器都像一张白纸,干干净净地打开目标网站,然后…

2026/10/25 19:21:46 阅读更多 →
PCA+ELM+DBN组合算法在汽油光谱智能识别中的应用

PCA+ELM+DBN组合算法在汽油光谱智能识别中的应用

1. 项目概述:汽油光谱数据的智能识别方案光谱分析技术在石油化工领域已有数十年应用历史,但传统方法往往依赖人工经验判断。这个项目通过PCAELMDBN的组合方案,实现了汽油光谱数据的自动化预处理与分类识别。我在炼油厂质检部门工作时&#xf…

2026/10/23 13:45:03 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/31 0:19:11 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/31 10:20:19 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/31 10:20:23 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/31 0:59:28 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/31 10:30:19 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/31 9:29:43 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 17:32:24 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 11:00:40 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 0:09:01 阅读更多 →