/etc 是 Linux 系统配置中枢,涵盖网络、用户、启动、环境等关键配置;修改前须明确文件作用、生效机制及风险,优先使用专用命令(如 useradd、visudo、hostnamectl)而非直接编辑。

/etc 目录是 Linux 系统配置的中枢,绝大多数关键配置文件都集中在此,改错一个就可能让网络不通、服务起不来、甚至系统无法启动。别盲目编辑,先搞清每个文件“管什么”“动它会怎样”。
网卡和 DNS 配置:改完不生效?先看生效机制
网络类配置最容易误操作,因为不同发行版路径和生效方式差异大,且修改后常需手动触发或重启服务。
-
/etc/sysconfig/network-scripts/ifcfg-eth0(RHEL/CentOS)或/etc/network/interfaces(Debian/Ubuntu):静态 IP、网关、DNS 都写在这里;但改完不能直接生效——RHEL 系统要运行systemctl restart network,Ubuntu 则用systemctl restart networking或ifdown eth0 && ifup eth0 -
/etc/resolv.conf:只负责当前 DNS 解析,但很多系统(如使用 NetworkManager 或 systemd-resolved 的)会覆盖它。单纯改这个文件,重启后大概率被重写;想持久化,得配/etc/systemd/resolved.conf或在网卡配置里加DNS1=8.8.8.8 -
/etc/hosts:本地域名映射,优先级高于 DNS,改完立即生效,无需重启任何服务;适合测试环境绑定127.0.0.1 myapp.local,但别用来替代 DNS 做生产级域名管理
用户与权限控制:密码、权限、登录提示全在这儿
这些文件权限极严,误改会导致用户无法登录、sudo 失效,甚至锁死 root。
-
/etc/passwd:存用户名、UID、家目录等,所有用户可读;但别手动增删字段——用useradd/usermod更安全;字段顺序错一位(比如把 UID 和 GID 搞反),su就会报Authentication failure -
/etc/shadow:密码哈希值所在,仅root可读;绝对不要用普通编辑器打开,更不能复制粘贴内容;重置密码请用passwd username或chage -d 0 username强制下次登录修改 -
/etc/sudoers:控制 sudo 权限;必须用visudo编辑(它会语法检查),直接vim /etc/sudoers写错一行,sudo就永久失效;常见错误是漏写Defaults env_reset导致环境变量污染 -
/etc/motd或/etc/issue:用户登录时看到的提示信息;/etc/motd对 SSH 登录生效,/etc/issue对本地终端生效;改完不用重启,下次登录即见
系统启动与挂载:fstab 写错,开机直接进 emergency mode
/etc/fstab 是高危配置文件,每一行定义一个设备挂载点,格式稍有偏差(比如第5/6字段填反、文件系统类型写错),系统就可能卡在 initramfs 阶段。
在线证件照系统是一套完善的冲印行业解决方案,致力于解决用户线上拍摄证件照,拍摄最美最标准证件照的使命。证件照免费版功能:后台统计:当天制作、当天新增、支持规格、近7日统计规格列表:筛选查看、编辑用户列表:筛选查看常见问题:筛选查看、新增、编辑、删除小程序设置:应用设置、流量主设置小程序跳转:筛选查看、新增、编辑、删除关注公众号:引导设置系统要求:系统:Linux系统(centos x64)运行环境
- 修改前务必执行
mount -a测试——它会按/etc/fstab重新挂载所有条目,出错会立刻报错(如unknown filesystem type 'ext5'),此时还能修正 - 第4字段(挂载选项)慎用
defaults:它隐含exec和suid,若挂载的是用户上传目录,可能引发提权风险;生产环境建议显式写noexec,nosuid,nodev - UUID 比设备名更可靠:
/dev/sdb1在磁盘顺序变动时可能变成/dev/sdc1,而UUID=xxx不会变;查 UUID 用blkid,再填进 fstab
环境与 Shell 全局配置:PATH 和 alias 怎么对所有用户生效
想让新装的命令全局可用,或统一设置别名,不能只改个人 ~/.bashrc,得动系统级配置,但要注意加载顺序和生效范围。
-
/etc/profile:对所有用户、所有 shell(bash/sh/zsh)登录时执行;适合设PATH、umask等基础环境;改完需source /etc/profile才对当前会话生效,新登录用户自动加载 -
/etc/bash.bashrc(Debian/Ubuntu)或/etc/bashrc(RHEL/CentOS):仅对交互式 bash 生效;适合设alias、PS1;注意:非登录 shell(比如脚本中调用bash -c "ll")不会加载它 - 避免重复定义:如果
/etc/profile已含source /etc/bash.bashrc,再在/etc/bash.bashrc里重复加alias ll='ls -l'没问题;但若两个文件都追加同一段 PATH,可能导致路径重复,影响命令查找效率
/etc/hostname 改了不重启也能用 hostnamectl set-hostname 刷新,但 /etc/fstab 里少个逗号,下次 reboot 就只能靠救援模式修复。动手前,先 man 5 文件名 看官方文档,比抄网上的三手教程靠谱得多。









