目录
CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?type=blog
一、文件系统基础概念
Linux 文件系统采用树形结构,以根目录 /
为起点,所有文件和目录都挂载在这个树状结构上。理解文件系统的关键概念包括:
- inode:存储文件元数据(权限、大小、创建时间等)
- block:实际存储文件数据的磁盘块
- 挂载点:文件系统在目录树中的接入位置
二、查看文件系统信息
2.1 磁盘空间查看
# 查看所有挂载点的磁盘使用情况
df -h
# 查看指定目录的磁盘占用
du -sh /var/log
# 显示inode使用情况
df -i
2.2 分区与挂载管理
# 查看系统分区信息
lsblk
# 挂载新分区
mount /dev/sdb1 /mnt/data
# 自动挂载配置(修改/etc/fstab)
/dev/sdb1 /mnt/data ext4 defaults 0 0
# 卸载分区
umount /mnt/data
2.3 文件系统类型操作
# 创建ext4文件系统
mkfs.ext4 /dev/sdb1
# 检查文件系统错误
fsck /dev/sdb1
三、文件系统权限配置
3.1 基础权限管理
# 查看文件权限
ls -l file.txt
# 修改权限(ugo=rwx)
chmod 777 file.txt
# 递归修改目录权限
chmod -R 755 /var/www
# 符号模式修改权限
chmod u+w,g-x,o=r file.txt
3.2 所有权管理
# 修改文件所有者
chown user file.txt
# 修改文件所属组
chgrp staff file.txt
# 递归修改目录所有权
chown -R user:staff /var/www
3.3 特殊权限设置
# 设置SUID权限(允许普通用户以所有者权限运行)
chmod u+s /usr/bin/passwd
# 设置SGID权限(强制继承目录组)
chmod g+s /var/log
# 设置粘滞位(防止非所有者删除文件)
chmod +t /tmp
四、文件操作基础
4.1 文件创建
# 空文件创建
touch empty.txt
# 创建带内容的文件
echo "Hello Linux" > greet.txt
# 创建多文件
touch file{1..5}.txt
4.2 文件删除
# 删除单个文件
rm file.txt
# 强制删除只读文件
rm -f readonly.txt
# 递归删除目录
rm -rf /tmp/testdir
4.3 文件复制与移动
# 复制文件
cp source.txt /dest/
# 保留属性复制
cp -a /etc /backup/
# 移动文件(重命名)
mv oldname.txt newname.txt
# 递归移动目录
mv /var/log /backup/
4.4 文件编辑
# 使用vim编辑文件
vim config.conf
# 插入模式:按i
# 保存退出::wq
# 使用nano简单编辑
nano notes.txt
# 快速替换文本
sed -i 's/old/new/g' file.txt
五、高级文件管理
5.1 链接管理
# 创建硬链接
ln file.txt hardlink.txt
# 创建软链接
ln -s /var/log symlink_log
# 查看链接信息
ls -li
5.2 查找与搜索
# 按名称查找文件
find / -name "*.log"
# 按权限查找文件
find / -perm 777
# 快速查找命令(需要更新数据库)
locate passwd
updatedb
5.3 压缩与归档
# 创建tar包
tar -cvf backup.tar /etc
# 创建gzip压缩包
tar -zcvf backup.tar.gz /var
# 解压tar.gz文件
tar -zxvf backup.tar.gz
# 其他压缩格式
gzip file.txt
gunzip file.txt.gz
六、权限管理进阶
6.1 ACL 访问控制列表
# 查看ACL设置
getfacl file.txt
# 赋予用户读写权限
setfacl -m u:user:rw- file.txt
# 递归设置ACL
setfacl -R -m u:user:r-x /var/www
# 删除ACL
setfacl -x u:user file.txt
6.2 权限掩码设置
# 查看当前umask
umask
# 临时修改umask
umask 0022
# 永久修改(在~/.bashrc中添加)
echo "umask 0022" >> ~/.bashrc
6.3 安全增强配置
# 设置文件不可修改
chattr +i important.conf
# 查看特殊属性
lsattr important.conf
# 移除不可修改属性
chattr -i important.conf
七、实战案例
7.1 网站目录权限配置
# 创建网站目录
mkdir -p /var/www/mysite
# 设置所有者和组
chown -R www-data:www-data /var/www/mysite
# 设置权限
chmod -R 750 /var/www/mysite
chmod g+s /var/www/mysite
7.2 日志文件管理
# 每日归档日志
find /var/log -type f -name "*.log" -mtime +7 -exec tar -zcvf /backup/log_$(date +%Y%m%d).tar.gz {} \;
# 自动清理旧日志
find /var/log -type f -name "*.log" -mtime +30 -delete
7.3 系统备份方案
# 全量备份脚本
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup/full_$DATE"
mkdir -p $BACKUP_DIR
rsync -aAX --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / $BACKUP_DIR
八、常见问题处理
8.1 权限拒绝问题
# 检查文件权限
ls -ld /var/www
# 切换用户执行
sudo chown user /var/www/file.txt
8.2 文件误删恢复
# 使用extundelete恢复(需安装)
extundelete /dev/sda1 --restore-file /etc/passwd
# 备份恢复
cp /backup/old/passwd /etc/
8.3 文件系统修复
# 强制检查文件系统
fsck -f /dev/sdb1
# 单用户模式修复
mount -o remount,ro /
fsck -y /dev/sdb1
九、总结与最佳实践
- 权限最小化原则:只赋予必要的读写执行权限
- 定期备份:重要数据至少保留 3 份
- 特殊权限审计:每月检查 SUID/SGID 文件
- 使用 ACL 精细控制:针对复杂权限需求
- 文件系统监控:设置磁盘空间预警阈值
- 使用版本控制:对配置文件使用 git 管理
通过本指南的学习,读者能够掌握 Linux 文件系统的核心操作,从基础文件管理到高级权限控制,从日常维护到灾难恢复,全面提升系统管理能力。建议结合实际环境进行操作练习,加深理解和记忆。