【Linux】文件目录管理【一】Linux 标准根目录FHS 文件系统层次标准全目录及作用【1】核心系统目录【2】现代运行时目录临时内存文件系统 tmpfs【3】用户专属目录【二】新建用户 / 用户组自动创建的目录【1】创建用户流程useradd自动生成内容① 系统原始目录/etc/bin /var/usr /root 等② 用户新建目录/home/test 普通用户家目录补充/root 特殊点【2】/etc/skel 作用【3】用户组对应目录【4】核心差异总结【三】不同用户启动服务的核心区别权限、资源、安全、文件隔离【1】权限差异最关键1root 启动服务2专用系统用户mysql、nginx、redis3自定义普通业务用户app、test【2】文件 / 目录隔离区别【3】端口、资源限制【4】日志、进程归属区分【5】安全层面总结【6】补充Systemd 管理服务指定运行用户【四】高频总结【一】Linux 标准根目录FHS 文件系统层次标准全目录及作用Linux 所有目录都挂载在/根下分为系统核心目录、运行时临时目录、用户数据目录三大类。【1】核心系统目录表格目录全称核心作用/root 根整个文件系统最顶层所有文件起点/binBinary普通用户可执行基础命令ls、cp、mv、cat、cd 等单用户模式也能用/sbinSystem Binary管理员 root 专用系统命令fdisk、ifconfig、mount、reboot、iptables/bootBoot系统启动文件内核 vmlinuz、grub 引导程序、initramfs磁盘分区很小/devDevice硬件设备文件硬盘 /dev/sda、网卡 /dev/eth0、串口 /dev/tty、空设备 /dev/null/etcEtcetera系统全局配置文件所有服务、用户、网络配置都在这里passwd 用户、group 用户组、nginx/ssh/redis 配置都存放于此/lib//lib64Library系统程序依赖的动态链接库.so对应 /bin/sbin 命令运行依赖/mntMount临时手动挂载目录U 盘、移动硬盘、临时磁盘分区手动挂载点/mediaMedia自动挂载外设U 盘、光驱、移动存储桌面系统常用/optOptional第三方大型商业软件安装目录Oracle、MySQL、JDK、商业化中间件/rootRoot home超级管理员 root 的家目录只有 root 有权进入和普通用户 /home 区分开/tmpTemporary全局临时文件目录所有用户可读写系统定时自动清理文件/usrUnix Software Resource系统预装软件资源占磁盘最大/usr/bin普通用户完整命令/usr/sbin完整管理工具/usr/lib应用程序库/usr/share文档、字体、配置模板/usr/local管理员手动编译安装软件源码安装默认路径/varVariable可变数据目录运行时不断产生数据/var/log系统、服务日志/var/lib数据库、容器持久化数据/var/run进程 pid 文件现已软链接到 /run/var/spool邮件、打印队列【2】现代运行时目录临时内存文件系统 tmpfs/run进程运行时临时数据存放 pid、socket 套接字重启全部清空/proc虚拟内核文件系统不占磁盘实时查看内核、进程、CPU、内存信息ps、top 读取这里数据/sys硬件设备虚拟文件管理内核硬件、驱动参数【3】用户专属目录/home所有普通用户默认家目录根目录新建用户 user1 会自动创建/home/user1【二】新建用户 / 用户组自动创建的目录【1】创建用户流程useradd自动生成内容执行useradd testpasswd test时默认生成用户记录写入/etc/passwd用户组写入/etc/group、密码影子文件/etc/shadow若加-m参数自动创建家目录/home/test复制模板文件/etc/skel下隐藏文件到家目录.bashrc、.profile、.bash_logout、.vimrc① 系统原始目录/etc/bin /var/usr /root 等归属系统、权限严格受控属主 root权限 755/700系统安装时自带全局共用所有用户共享读取写入仅 root存放系统命令、全局配置、系统日志、内核、硬件驱动删除会直接导致系统崩溃、命令失效、服务无法启动生命周期跟随操作系统重装全局生效。② 用户新建目录/home/test 普通用户家目录归属单独用户属主 test:test权限默认 700其他用户无法进入查看创建用户时生成仅当前用户私有空间存放用户个人文件、脚本、个人配置、下载数据、个人程序删除用户userdel -r test目录同步删除不影响系统运行内部隐藏文件.bashrc仅当前用户登录生效只修改个人 shell 环境。补充/root 特殊点root 是超级用户家目录不属于 /home权限比普通家目录更严格只有 root 能访问。【2】/etc/skel 作用创建用户家目录的模板文件夹所有新建用户都会复制里面环境配置修改 skel 文件后续新建用户自动继承自定义 shell 配置。【3】用户组对应目录单纯创建组groupadd testgroup不会生成任何文件夹只有把用户加入组、创建用户家目录后目录属组才会变成对应组组仅控制文件读写权限不创建独立目录。【4】核心差异总结表格维度系统原始目录用户家目录 /home/xxx创建时机系统安装初始化useradd -m 创建用户时生成属主权限root普通用户仅读当前用户私有他人无访问权限作用范围全系统全局共用仅单个用户私有存储删除影响删则系统损坏删除仅丢失该用户数据系统无恙配置生效所有用户全局生效仅登录该用户时生效【三】不同用户启动服务的核心区别权限、资源、安全、文件隔离Linux 服务分三类启动身份root 用户、普通系统用户nginx/mysql、自定义业务普通用户app【1】权限差异最关键1root 启动服务拥有系统最高权限读写所有目录、修改系统配置、绑定 1024 以下低端口80、443、22、3306、操作硬件、修改内核参数风险极高服务漏洞会直接拿到服务器最高权限入侵后可删全盘、篡改系统适用极少数底层系统服务sshd、crond、networkd业务软件禁止 root 运行。2专用系统用户mysql、nginx、redis安装中间件自动创建的无登录用户/sbin/nologin无家目录、不能 ssh 登录服务器权限最小化仅拥有软件数据目录读写权限如/var/lib/mysql无法修改系统文件、无法绑定低端口需 root 授权或端口转发安全即便程序被攻破攻击者权限受限无法篡改系统行业标准数据库、web 服务统一使用独立专用用户运行。3自定义普通业务用户app、test开发 / 运维手动创建可登录用户/bin/bash有独立 /home/app 家目录仅拥有家目录、分配的业务目录读写权限不能修改系统配置、无法操作核心系统目录多用于自研 Java/Go/Python 业务程序程序日志、代码存放自家目录支持 ssh 登录可手动启停程序。【2】文件 / 目录隔离区别root 启动服务日志、数据可随意存放在/etc/root/var任意位置专用用户mysql数据强制隔离在专属目录/var/lib/mysql其他用户无权限读写数据库文件普通 app 用户业务代码、日志、缓存全部隔离在/home/app和系统目录完全分开互不干扰。【3】端口、资源限制root可绑定 1~65535 所有端口无文件句柄、进程数硬限制可直接修改系统限制普通用户nginx/app默认只能绑定 1024 以上高端口打开文件数、最大进程受/etc/security/limits.conf限制资源耗尽无法随意突破。【4】日志、进程归属区分进程 PID 文件、日志文件属主 启动服务的用户root 启动进程ps 查看 UID0普通用户进程 UID 为 1000权限不足场景普通用户启动 nginx 监听 80 端口会直接报错permission denied必须用 root 启动或 setcap 授权。【5】安全层面总结root 运行权限无隔离漏洞 服务器沦陷独立专用用户最小权限原则生产环境推荐所有中间件、业务程序使用可登录普通用户兼顾手动调试适合自研业务禁止运行数据库、对外 web 服务。【6】补充Systemd 管理服务指定运行用户服务配置文件/usr/lib/systemd/system/xxx.service可配置UserappGroupapp实现进程以普通用户身份后台运行即便 systemd 由 root 管理业务进程权限被隔离。【四】高频总结Linux 系统目录分全局系统目录root 归属和用户私有家目录/home创建用户-m才会生成独立私有目录组本身不生成文件夹仅管控权限系统目录全局共享、删则系统损坏用户家目录私有、删除不影响系统root 启动服务权限无限但风险极高专用 / 普通用户权限隔离是生产环境安全规范。