运行时依赖
版本
curl -v 显示完整的连接细节 —— 头部、时序、TLS 握手
安装命令
点击复制技能文档
系统管理规则 用户管理 创建服务账户使用 --system 标志 —— 没有主目录,没有登录 shell 使用特定命令的 sudo,而不是全部 ALL —— 最小权限原则 锁定账户而不是删除:usermod -L —— 保留审计跟踪和文件所有权 SSH 密钥在 ~/.ssh/authorized_keys 中,具有限制性权限 —— 文件 600,目录 700 使用 visudo 编辑 sudoers —— 保存前捕获语法错误,防止锁定 进程管理 使用 systemctl 管理服务,而不是 service —— systemd 是现代发行版的标准 使用 journalctl -u service -f 查看实时日志 —— 比 tail 更强大 使用 nice 和 ionice 运行后台任务 —— 不要与生产工作负载竞争 杀死信号:首先使用 SIGTERM(15),最后使用 SIGKILL(9) —— SIGKILL 不允许清理 使用 nohup 或 screen/tmux 运行长时间命令 —— SSH 断开连接会杀死普通进程 文件系统和存储 使用 df -h 查看磁盘使用情况,du -sh * 查找罪魁祸首 —— 填满磁盘前检查 使用 lsof +D /path 查找使用目录的进程 —— 卸载前需要 使用 ncdu 交互式查看磁盘使用情况 —— 比重复 du 命令更快 挂载选项很重要:noexec、nosuid 用于数据分区的安全 小心调整文件系统大小:增长是安全的,缩小风险数据丢失 —— 先备份 日志和监控 logrotate 防止磁盘填满 —— 配置大小限制和保留 将日志集中到外部系统 —— 本地日志在服务器死亡时丢失 /var/log/auth.log 或 /var/log/secure 用于登录尝试 —— 监控暴力破解 dmesg 用于内核消息 —— 硬件错误、OOM 杀死出现在这里 监控 inode 使用情况,而不仅仅是磁盘空间 —— 许多小文件会耗尽 inode 权限和安全 chmod 600 用于秘密,640 用于配置,644 用于公共 —— 世界可写几乎从不正确 共享目录上的粘滞位(chmod +t) —— 用户只能删除自己的文件 setfacl 用于复杂权限 —— 传统所有者/组/其他不够用时 chattr +i 使文件不可变 —— 即使 root 也不能在不删除标志的情况下修改 SELinux/AppArmor 在强制模式下 —— 记录但不保护 包管理 在 apt 升级前运行 apt 更新 —— 升级时不更新使用过时的包列表 无人值守安全更新:unattended-upgrades —— 关键补丁不应等待 在生产环境中固定包版本 —— 意外升级会导致意外停机 删除未使用的包:apt autoremove —— 减少攻击面和磁盘使用 了解包管理器:apt/yum/dnf/pacman —— 命令不同,概念相似 备份 定期测试还原 —— 不能还原的备份毫无价值 包括包列表和配置,而不仅仅是数据 —— 重建环境很痛苦 离站备份是强制性的 —— 本地备份在磁盘故障或勒索软件攻击时不生效 在任何高风险更改前备份 —— “我会快速编辑”著名的最后一句话 记录还原程序 —— 3 点钟灾难是错误的时间来弄清楚 性能 top/htop 用于实时查看,vmstat 用于趋势 —— 了解基线后再诊断 iotop 用于磁盘 I/O 瓶颈 —— 慢速磁盘经常被归咎于 CPU 负载平均值:每个核心 1.0 是健康的 —— 一致性更高意味着排队 交换使用并不本质上坏 —— 但持续交换表明内存不足 sar 用于历史数据 —— 事后诊断事件期间发生了什么 网络基础 ss -tulpn 显示监听端口 —— netstat 已弃用 ip addr 和 ip route 替换 ifconfig 和 route —— 学习新工具 检查主机防火墙和云安全组 —— 两个级别的流量都被阻塞 /etc/hosts 用于本地覆盖 —— 快速测试无需 DNS 更改 curl -v 显示完整连接详细信息 —— 标头、计时、TLS 握手 常见错误 以 root 身份运行服务 —— 一次性利用即可拥有整个系统 在出现问题之前不监控 —— 被动式很昂贵 编辑配置而不备份 —— cp 文件文件.bak 需要两秒 重启以“修复”问题 —— 掩盖问题,它会回来 忽略磁盘空间警告 —— 100% 满会导致级联故障 忘记时区配置 —— 不同服务器的日志不相关