【Linux运维极简教程】02-文件系统与权限管理

发布时间:2026/7/11 1:03:04
【Linux运维极简教程】02-文件系统与权限管理 02 - 文件系统与权限管理一、Linux 目录结构Linux 采用树形目录结构根目录为/。以下是核心目录说明/ ├── bin/ # 基本命令所有用户可用 ├── sbin/ # 系统管理命令root 用户 ├── boot/ # 内核与启动文件 ├── dev/ # 设备文件 ├── etc/ # 配置文件 ├── home/ # 普通用户家目录 ├── root/ # root 用户家目录 ├── var/ # 可变数据日志、缓存等 ├── tmp/ # 临时文件 ├── usr/ # 用户程序与库 ├── proc/ # 内核与进程信息虚拟文件系统 ├── sys/ # 系统硬件信息虚拟文件系统 └── opt/ # 第三方软件安装目录重要目录详解目录说明运维关注点/etc系统配置文件修改服务配置的核心位置/var/log系统日志排查问题的第一站/var/wwwWeb 数据网站文件存放/proc进程与内核信息查看运行时状态/opt第三方软件自编译软件常用安装路径二、文件类型Linux 中一切皆文件通过ls -l的第一个字符判断类型- 普通文件 d 目录 l 符号链接软链接 c 字符设备如终端 b 块设备如磁盘 s 套接字文件 p 管道文件# 示例ls-l/etc/passwd# -rw-r--r-- 普通文件ls-ld/etc# drwxr-xr-x 目录ls-l/dev/sda# brw-rw---- 块设备ls-l/dev/null# crw-rw-rw- 字符设备三、权限详解3.1 权限的组成每个文件有三组权限分别对应文件所有者owner、所属组group和其他人others-rwxr-xr-- ├─ ├─ └─ 所有者 所属组 其他人权限字符数值对文件的含义对目录的含义读r4查看文件内容列出目录内容写w2修改文件内容在目录中创建/删除文件执行x1运行文件进入目录3.2 修改权限 - chmod# 数字方式推荐chmod755script.sh# rwxr-xr-xchmod644config.conf# rw-r--r--chmod700~/.ssh# rwx------SSH 目录必须# 符号方式chmodux script.sh# 给所有者加执行权限chmodg-w file.txt# 去掉组的写权限chmodor file.txt# 其他人只读chmodar file.txt# 所有人加读权限a 可省略chmodugox script.sh# 等同于 ax# 递归修改目录及子文件chmod-R755/data/www常用权限参考权限数值典型用途rwx------700SSH 私钥、私密目录rwxr-xr-x755可执行脚本、Web 目录rw-r--r--644普通配置文件rw-------600含密码的配置文件rwxrwxrwx777尽量避免使用3.3 修改所有者 - chown# 修改所有者chownalice file.txt# 修改所有者和所属组chownalice:developers file.txt# 仅修改所属组chgrpdevelopers file.txt# 递归修改chown-Rnginx:nginx /var/www/html3.4 特殊权限位除了 rwx还有三种特殊权限SUIDSet User ID- 数值 4000执行该文件时以文件所有者身份运行而非执行者。# 经典例子普通用户可以通过 passwd 命令修改密码ls-l/usr/bin/passwd# -rwsr-xr-x s 即 SUIDSGIDSet Group ID- 数值 2000对目录设置后目录内新建的文件自动继承目录的所属组。chmod2775/shared/project# 目录内新建的文件自动属于 project 组Sticky Bit - 数值 1000对目录设置后只有文件所有者和 root 才能删除该目录中的文件。# 经典例子/tmp 目录ls-ld/tmp# drwxrwxrwt t 即 Sticky Bitchmod1777/shared/upload3.5 ACL访问控制列表当传统权限不够用时ACL 可以对单个用户/组设置精细权限# 查看 ACLgetfacl /data/report# 给用户 alice 设置读写权限setfacl-mu:alice:rw /data/report# 给组 developers 设置只读权限setfacl-mg:developers:r /data/report# 删除某条 ACL 规则setfacl-xu:alice /data/report# 递归设置setfacl-R-mu:alice:rw /data/project/# 设置默认 ACL新建文件自动继承setfacl-d-mu:alice:rw /data/project/四、文件系统管理4.1 查看文件系统类型# 查看已挂载的文件系统df-Th# 查看指定分区的文件系统类型blkid /dev/sda14.2 常见文件系统对比文件系统特点适用场景ext4稳定成熟Linux 默认通用场景xfs大文件性能优秀CentOS 默认大容量存储btrfs支持快照、压缩、子卷高级存储需求tmpfs内存文件系统重启丢失临时数据4.3 inode 与硬链接inode是文件的元数据结构存储文件权限、大小、时间戳等信息但不包含文件名。文件名与 inode 的对应关系存储在目录中。# 查看文件的 inode 号ls-ifile.txt# 查看文件系统 inode 使用情况df-i硬链接Hard Link多个文件名指向同一个 inode删除一个不影响其他。lnoriginal.txt hardlink.txt软链接Symbolic Link类似 Windows 快捷方式指向文件路径。目标文件删除后链接失效。ln-s/usr/local/nginx/sbin/nginx /usr/bin/nginx# 查看软链接指向readlink /usr/bin/nginx特性硬链接软链接inode与原文件相同不同跨文件系统不支持支持链接目录不支持支持原文件删除仍可访问失效五、实战场景场景一Web 目录权限设置# 网站目录所有者设为 nginx 用户chown-Rnginx:nginx /var/www/html# 目录设为 755可进入文件设为 644不可执行find/var/www/html-typed-execchmod755{}\;find/var/www/html-typef-execchmod644{}\;场景二共享目录权限设置# 创建共享目录mkdir/data/shared# 设置组为 developers并设置 SGIDchgrpdevelopers /data/sharedchmod2770/data/shared# 这样 developers 组的成员都能读写# 新建文件自动属于 developers 组场景三排查权限问题# 查看完整权限信息含 ACLls-lZ/data/file# -Z 显示 SELinux 上下文getfacl /data/file# 查看 ACL# 模拟用户身份测试权限su- alice-ccat /data/file六、常见问题Q1权限是 777 为什么还是提示 Permission Denied可能是 SELinux 或 ACL 限制了访问。检查方法getenforce# 查看 SELinux 状态getfacl /path/to/file# 查看 ACLls-lZ/path/to/file# 查看 SELinux 上下文Q2chmod -R 后目录能进入但文件打不开可能把文件也设成了只有执行权限没有读权限。正确做法是分别设置目录和文件find/data-typed-execchmod755{}\;find/data-typef-execchmod644{}\;七、小结本篇详细讲解了 Linux 目录结构、文件类型、权限体系基本权限、特殊权限、ACL以及文件系统基础。权限管理是 Linux 安全的基石务必理解透彻。上一篇01 - Linux 运维概述与基础命令下一篇03 - 用户与用户组管理