当前位置: 首页 > news >正文

【Linux】文件目录管理

【Linux】文件目录管理

  • 【一】Linux 标准根目录(FHS 文件系统层次标准)全目录及作用
    • 【1】核心系统目录
    • 【2】现代运行时目录(临时内存文件系统 tmpfs)
    • 【3】用户专属目录
  • 【二】新建用户 / 用户组自动创建的目录
    • 【1】创建用户流程(useradd)自动生成内容
      • ① 系统原始目录(/etc/bin /var/usr /root 等)
      • ② 用户新建目录(/home/test 普通用户家目录)
      • 补充:/root 特殊点
    • 【2】/etc/skel 作用
    • 【3】用户组对应目录
    • 【4】核心差异总结
  • 【三】不同用户启动服务的核心区别(权限、资源、安全、文件隔离)
    • 【1】权限差异(最关键)
      • (1)root 启动服务
      • (2)专用系统用户(mysql、nginx、redis)
      • (3)自定义普通业务用户(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 test+passwd test时,默认生成:

  1. 用户记录写入/etc/passwd
  2. 用户组写入/etc/group、密码影子文件/etc/shadow
  3. 若加-m参数:自动创建家目录/home/test
  4. 复制模板文件/etc/skel下隐藏文件到家目录:.bashrc.profile.bash_logout.vimrc

① 系统原始目录(/etc/bin /var/usr /root 等)

  1. 归属系统、权限严格受控,属主 root,权限 755/700;
  2. 系统安装时自带,全局共用,所有用户共享读取(写入仅 root);
  3. 存放系统命令、全局配置、系统日志、内核、硬件驱动;
  4. 删除会直接导致系统崩溃、命令失效、服务无法启动;
  5. 生命周期跟随操作系统重装,全局生效。

② 用户新建目录(/home/test 普通用户家目录)

  1. 归属单独用户,属主 test:test,权限默认 700,其他用户无法进入查看;
  2. 创建用户时生成,仅当前用户私有空间;
  3. 存放用户个人文件、脚本、个人配置、下载数据、个人程序;
  4. 删除用户(userdel -r test)目录同步删除,不影响系统运行;
  5. 内部隐藏文件.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】权限差异(最关键)

(1)root 启动服务

  • 拥有系统最高权限:读写所有目录、修改系统配置、绑定 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】文件 / 目录隔离区别

  1. root 启动服务:日志、数据可随意存放在/etc/root/var任意位置;
  2. 专用用户(mysql):数据强制隔离在专属目录/var/lib/mysql,其他用户无权限读写数据库文件;
  3. 普通 app 用户:业务代码、日志、缓存全部隔离在/home/app,和系统目录完全分开,互不干扰。

【3】端口、资源限制

  1. root:可绑定 1~65535 所有端口,无文件句柄、进程数硬限制(可直接修改系统限制);
  2. 普通用户(nginx/app):默认只能绑定 1024 以上高端口;打开文件数、最大进程受/etc/security/limits.conf限制,资源耗尽无法随意突破。

【4】日志、进程归属区分

  • 进程 PID 文件、日志文件属主 = 启动服务的用户;
  • root 启动进程:ps 查看 UID=0;普通用户进程 UID 为 1000+;
  • 权限不足场景:普通用户启动 nginx 监听 80 端口会直接报错permission denied,必须用 root 启动或 setcap 授权。

【5】安全层面总结

  1. root 运行:权限无隔离,漏洞 = 服务器沦陷;
  2. 独立专用用户:最小权限原则,生产环境推荐所有中间件、业务程序使用;
  3. 可登录普通用户:兼顾手动调试,适合自研业务,禁止运行数据库、对外 web 服务。

【6】补充:Systemd 管理服务指定运行用户

服务配置文件/usr/lib/systemd/system/xxx.service可配置:

User=appGroup=app

实现进程以普通用户身份后台运行,即便 systemd 由 root 管理,业务进程权限被隔离。

【四】高频总结

  1. Linux 系统目录分全局系统目录(root 归属)和用户私有家目录(/home);
  2. 创建用户-m才会生成独立私有目录,组本身不生成文件夹,仅管控权限;
  3. 系统目录全局共享、删则系统损坏;用户家目录私有、删除不影响系统;
  4. root 启动服务权限无限但风险极高,专用 / 普通用户权限隔离,是生产环境安全规范。
http://www.jsqmd.com/news/1204719/

相关文章:

  • GESP认证C++编程真题解析 | 202606 四级
  • 飞腾派4G版硬件架构与网络优化实战
  • CentOS/RHEL配置Yum仓库实战与优化技巧
  • Ubuntu笔记本安装与优化全指南
  • C++课程设计实战:面向对象仓库管理系统源码解析与实现
  • [Bug已解决] DDP 模式下 CUDA error: an illegal memory access was encountered 解决方案
  • 2026 年新发布:常德正规的救护车转运病人企业深度解析与优选指南,紧急时刻,转运的真相:你不知道的流程 - 行业推荐【认证官】
  • FPGA仿真验证入门:工具选择与Testbench编写实战
  • 统一管理SSH密钥:从密钥泛滥到高效安全访问的工程实践
  • Windows任务管理器深度解析与高效使用技巧
  • Qwen-14B大模型量化部署实战:AutoGPTQ技术解析
  • 90天AI全栈特训营:从模型开发到工程落地
  • 昉·星光2 RISC-V开发板U-Boot环境搭建与开发指南
  • 《GraphRAG 工程落地:Neo4j 与向量数据库的“混合双打”架构》
  • Python游戏毕业设计:从状态机到组件化,构建可扩展游戏架构
  • 基于Boost.Asio构建C++通用异步任务调度器:线程池与定时任务实践
  • Stable Diffusion在Google Colab上的AI绘画实践指南
  • 2026 年华安知名的四季青草皮批发销售厂家推荐,揭秘:草皮生意如何靠这批货赚翻天? - 行业推荐官【认证】
  • Wireshark实战:RTP/RTCP协议抓包与音视频流媒体问题深度解析
  • 长沙积家回收价格查询及各大回收平台实测排行(2026年7月最新数据) - 收的高名表回收平台
  • Isaac Gym实战避坑指南:从具身智能仿真到实机部署
  • Keil 编译文件 .axf 内容深度分析
  • 《GraphRAG 评估与调优:告别“凭感觉”,用 RAGAS 量化 AI 的全局认知力》
  • 彻底卸载Office 2007组件:解决兼容性与系统负担
  • 联想电脑原厂系统恢复全攻略与优化技巧
  • 小程序商城分销功能怎么做?推广员、佣金和复购玩法对比
  • RNG架构:从Clos树状拓扑到可控随机图的数据中心网络范式迁移
  • EASY EAI Nano开发板入门与交叉编译环境搭建
  • C++实现香农-范诺编码:从信息论到无损压缩实战
  • 规模化团队如何借鉴谷歌工程实践:代码审查、CI/CD与自动化测试落地指南