当前位置:首页>Linux>Linux 文件系统与权限管理实战详解

Linux 文件系统与权限管理实战详解

  • 2026-09-09 13:26:05
Linux 文件系统与权限管理实战详解

字数 1488,阅读大约需 8 分钟

Linux 文件系统结构

树状结构

/
├── bin/          # 基础命令 (ls, cp, mv)
├── boot/         # 启动文件
├── dev/          # 设备文件
├── etc/          # 配置文件
├── home/         # 用户主目录
├── lib/          # 系统库
├── media/        # 可移动媒体
├── mnt/          # 挂载点
├── opt/          # 可选软件
├── proc/         # 进程信息 (虚拟)
├── root/         # root 用户主目录
├── run/          # 运行时数据
├── sbin/         # 系统管理命令
├── srv/          # 服务数据
├── sys/          # 系统信息 (虚拟)
├── tmp/          # 临时文件
├── usr/          # 用户程序
└── var/          # 可变数据 (日志等)

常用目录

目录
用途
/etc
配置文件
/home
用户主目录
/var
日志等可变数据
/usr
用户程序
/proc
进程信息
/dev
设备文件

路径详解

绝对路径 vs 相对路径

# 绝对路径(从根开始)
cd
 /home/longge/projects

# 相对路径(从当前开始)

cd
 projects

# 特殊路径

.     # 当前目录
..    # 上级目录
~     # 用户主目录
-     # 上一个目录

路径操作

pwd        # 看当前路径
cd
 ..      # 返回上级
cd
 ../..   # 返回上上级
cd
 ~       # 回主目录
cd
 -       # 回上一个目录

路径操作

# 查看当前路径
pwd

# 输出:/home/longge


# 返回上级

cd
 ..

# 返回上上级

cd
 ../..

# 返回主目录

cd
 ~
# 或

cd


# 返回上一个目录

cd
 -

文件权限详解

权限表示

-rwxr-xr--  1 longge users  4096  script.sh
││││││││││
│││││││││└─ 其他用户:读
││││││││└── 其他用户:写
│││││││└─── 其他用户:执行
││││││└──── 组用户:读
│││││└───── 组用户:写
││││└────── 组用户:执行
│││└─────── 所有者:读
││└──────── 所有者:写
└────────── 文件类型(-文件,d目录,l链接)

数字表示

权限
数字
r
4
w
2
x
1

常用组合:

rwx = 7
r-x = 5
rw- = 6
r-- = 4

权限数字表示

权限
数字
二进制
r (读)
4
100
w (写)
2
010
x (执行)
1
001
- (无)
0
000

组合示例:

rwx = 4+2+1 = 7
r-x = 4+0+1 = 5
r-- = 4+0+0 = 4

完整权限:

rwxr-xr-- = 754
rwxrwxrwx = 777
rw-r--r-- = 644

用户与组

用户

whoami              # 当前用户
id
                  # 用户信息
cat
 /etc/passwd     # 用户列表
useradd -m newuser  # 创建用户
userdel -r newuser  # 删除用户
passwd newuser      # 改密码
su - username       # 切换用户

组

groups              # 当前用户组
cat
 /etc/group      # 组列表
groupadd newgroup   # 创建组
groupdel newgroup   # 删除组
usermod -aG group user  # 用户加组
chgrp
 group file    # 改文件所属组

常用命令

查看权限

# 详细列表
ls
 -l

# 显示隐藏文件

ls
 -la

# 递归显示

ls
 -lR

# 显示人类可读大小

ls
 -lh

修改权限

# 数字方式
chmod
 755 script.sh
chmod
 644 file.txt

# 符号方式

chmod
 +x script.sh        # 添加执行权限
chmod
 u+w file.txt        # 所有者添加写权限
chmod
 g-w file.txt        # 组移除写权限
chmod
 o=r file.txt        # 其他用户只读
chmod
 a+x script.sh       # 所有人添加执行权限

修改所有者

# 修改文件所有者
sudo
 chown newuser file.txt

# 修改文件所有者和组

sudo
 chown newuser:newgroup file.txt

# 递归修改目录

sudo
 chown -R newuser:newgroup /path/to/dir

实战案例

案例 1:部署 Web 应用

# 1. 创建应用目录
sudo
 mkdir -p /var/www/myapp

# 2. 创建应用用户

sudo
 useradd -r -s /bin/false myapp

# 3. 设置目录权限

sudo
 chown -R myapp:myapp /var/www/myapp
sudo
 chmod -R 755 /var/www/myapp

# 4. 配置文件只读

sudo
 chmod 644 /var/www/myapp/config.ini

# 5. 日志目录可写

sudo
 chmod 777 /var/www/myapp/logs (只是举例,生产环境慎用)

案例 2:共享目录设置

# 1. 创建共享目录
sudo
 mkdir /shared

# 2. 创建共享组

sudo
 groupadd shared

# 3. 添加用户到组

sudo
 usermod -aG shared user1
sudo
 usermod -aG shared user2

# 4. 设置目录权限

sudo
 chown root:shared /shared
sudo
 chmod 775 /shared

# 5. 设置 SGID(新文件继承组)

sudo
 chmod g+s /shared

案例 3:安全脚本

# 1. 创建脚本
cat
 > backup.sh << 'EOF'
#!/bin/bash

# 备份脚本

tar -czf /backup/$(date +%F).tar.gz /data
EOF

# 2. 设置权限(只有所有者可执行)

chmod
 700 backup.sh

# 3. 设置所有者

sudo
 chown root:root backup.sh

# 4. 测试执行

./backup.sh

避坑指南

坑 1:chmod 777

# ❌ 别这样
chmod
 777 /var/www

# ✅ 正确

chmod
 755 /var/www
chmod
 644 /var/www/config.php

坑 2:改根目录

# ❌ 别这样,系统会挂
chmod
 -R 777 /

# ✅ 正确

chmod
 -R 755 /var/www

坑 3:共享目录没设 SGID

# ❌ 新文件不属于共享组
mkdir
 /shared

# ✅ 加 SGID

chmod
 g+s /shared

坑 4:脚本没执行权限

# ❌ 报错 Permission denied
./script.sh

# ✅ 加权限

chmod
 +x script.sh
./script.sh

练习题

基础题

  1. 1. 查看 /etc/passwd 文件的权限
  2. 2. 将 test.txt 设置为只有所有者可读写
  3. 3. 将 script.sh 设置为可执行

进阶题

  1. 4. 创建共享目录 /team,要求:
    • • 组 team 成员可读写
    • • 其他用户只读
    • • 新文件自动继承 team 组
  2. 5. 部署 Web 应用,要求:
    • • 应用目录 /var/www/app
    • • 应用用户 www
    • • 代码目录 755
    • • 配置文件 644
    • • 日志目录 777

答案

# 1
ls
 -l /etc/passwd

# 2

chmod
 600 test.txt

# 3

chmod
 +x script.sh

# 4

sudo
 groupadd team
sudo
 mkdir /team
sudo
 chown root:team /team
sudo
 chmod 774 /team
sudo
 chmod g+s /team

# 5

sudo
 useradd -r -s /bin/false www
sudo
 mkdir -p /var/www/app/{code,config,logs}
sudo
 chown -R www:www /var/www/app
sudo
 chmod 755 /var/www/app/code
sudo
 chmod 644 /var/www/app/config/*
sudo
 chmod 777 /var/www/app/logs

📊 权限速查表

场景
命令
脚本可执行
chmod +x script.sh
文件只读
chmod 444 file.txt
私有文件
chmod 600 file.txt
公开可读
chmod 644 file.txt
目录可访问
chmod 755 /dir
完全私有
chmod 700 /dir
共享目录
chmod 775 /dir
临时目录
chmod 1777 /tmp

💬 下篇预告

《Linux 用户与组管理实战》

内容包括:

  • • 用户批量创建
  • • 组策略管理
  • • sudo 权限配置
  • • 审计日志分析

最新文章

随机文章