Linux文件系统结构与用户管理完全指南
在深入学习Linux系统管理之前,理解文件系统结构和用户管理机制是至关重要的。本文将详细介绍Linux的文件系统层次标准(FHS)和用户权限管理,帮助读者建立扎实的系统基础知识。
文章目录
- 1、Linux文件系统核心概念
- 文件系统基本特性
- 路径表示方法
- 绝对路径
- 相对路径
- 2、文件系统层次标准(FHS)详解
- 系统核心目录
- 用户相关目录
- 系统程序目录
- 可变数据目录
- 3、文件管理基础操作
- 文件和目录操作
- 文件类型识别
- 文本编辑器使用指南
- Vi/Vim编辑器
- 基本模式切换
- 光标移动命令
- 编辑和保存命令
- Nano编辑器
- Linux用户管理系统
- 用户信息查看
- 用户账户文件
- 用户创建和管理
- 添加用户
- 权限提升和切换
- 配置sudo权限
- root用户特殊性
- 实践建议
- 安全最佳实践
- 学习路径建议
- 总结
1、Linux文件系统核心概念
文件系统基本特性
Linux文件系统有几个重要特性需要牢记:
- 文件名长度限制:目录名和文件名长度不超过255个字符
- 大小写敏感:
File.txt
和file.txt
是两个不同的文件 - 一切皆文件:在Linux中,设备、进程、网络连接等都以文件形式存在
路径表示方法
Linux中有两种路径表示方式:
绝对路径
从根目录 /
开始的完整路径:
/home/user1/file1
/etc/passwd
/usr/local/bin/program
相对路径
相对于当前工作目录的路径:
# 当前在 /home/user1 目录下
./file1 # 当前目录下的file1
file1 # 省略 ./ 的写法
../user2/file2 # 上级目录user2下的file2# 当前在 /home/user2 目录下
../user1/file1 # 访问user1目录下的file1
2、文件系统层次标准(FHS)详解
Linux遵循文件系统层次标准,主要目录结构如下:
系统核心目录
/ # 根目录,整个文件系统的起点
├── bin/ # 基本命令二进制文件(普通用户)
├── sbin/ # 系统管理命令(管理员专用)
├── boot/ # 系统启动文件,内核和引导程序
├── dev/ # 设备文件目录
│ └── null # 系统"垃圾桶",丢弃输出数据
├── etc/ # 系统和软件配置文件
├── proc/ # 虚拟文件系统,内核和进程信息
└── tmp/ # 临时文件存储
用户相关目录
/root/ # root用户的家目录
/home/ # 普通用户家目录
└── username/ # 具体用户的个人目录
系统程序目录
/usr/ # 系统程序和文件
├── bin/ # 用户程序二进制文件
├── sbin/ # 系统管理程序
├── local/ # 本地安装的软件
├── lib/ # 32位库文件
└── lib64/ # 64位库文件
可变数据目录
/var/ # 存储经常变化的文件
├── log/ # 系统和应用日志
├── mail/ # 邮件存储
└── lib/ # 应用数据库文件/media/ # 自动挂载的移动设备
/mnt/ # 手动挂载点
3、文件管理基础操作
文件和目录操作
# 创建文件
touch filename.txt# 复制文件/目录
cp source_file destination_file
cp -r source_dir destination_dir # 递归复制目录# 移动/重命名
mv old_name new_name
mv file_path new_location/# 创建目录
mkdir directory_name
mkdir -p parent/child/grandchild # 创建多级目录# 删除文件/目录
rm filename
rm -rf directory_name # 强制删除目录及内容
文件类型识别
使用 ls -la
查看文件详细信息,文件类型通过首字符标识:
-rw-r--r-- # - 表示普通文件
drwxr-xr-x # d 表示目录
brw-rw---- # b 表示块设备文件
crw-rw-rw- # c 表示字符设备文件
srw-rw-rw- # s 表示套接字文件
prw-r--r-- # p 表示管道文件
lrwxrwxrwx # l 表示符号链接
查看文件类型详细信息:
file /etc/hosts
# 输出:/etc/hosts: ASCII text
文本编辑器使用指南
Vi/Vim编辑器
Vi是Linux系统标配的文本编辑器,掌握基本操作非常重要:
基本模式切换
vi filename # 打开文件进入命令模式
i # 进入插入模式
Esc # 返回命令模式
光标移动命令
# 基本方向移动
k # 上移
j # 下移
h # 左移
l # 右移# 单词级移动
w # 下一个单词词首
e # 当前/下一个单词词尾
b # 上一个单词词首# 行内移动
^ # 行首
$ # 行尾
编辑和保存命令
dd # 删除当前行
u # 撤销上一步操作
:行号 # 跳转到指定行
:wq # 保存并退出
:q! # 不保存强制退出
Nano编辑器
对于初学者,nano提供了更友好的界面:
# 安装nano
yum -y install nano# 使用nano编辑文件
nano filename
Nano的常用快捷键显示在屏幕底部,如 Ctrl+O
保存,Ctrl+X
退出。
Linux用户管理系统
用户信息查看
# 查看当前用户信息
id
# 输出:uid=1000(username) gid=1000(username) groups=1000(username)# 查看指定用户信息
id username# 查看当前登录用户
who# 查看系统进程
ps aux | less
用户账户文件
Linux用户信息存储在以下文件中:
/etc/passwd
- 用户基本信息/etc/shadow
- 用户密码信息(加密存储)
用户创建和管理
添加用户
# 基本用户创建
useradd username# 高级用户创建(指定详细参数)
useradd -u 1020 \ # 指定用户ID-g 1001 \ # 指定主组ID-c "测试用户" \ # 添加注释-d /home/test1 \ # 指定家目录-s /bin/bash \ # 指定默认shell-G games \ # 指定附加组test1 # 用户名
参数说明:
-u
: 指定用户ID (UID)-g
: 指定主组ID (GID)-c
: 添加用户描述信息-d
: 指定用户家目录路径-s
: 指定用户默认Shell-G
: 指定用户附加组-r
: 创建系统用户
权限提升和切换
# 临时提升权限执行命令
sudo command# 切换到root用户
sudo su# 切换到指定用户
su username
配置sudo权限
编辑sudoers文件来配置用户sudo权限:
# 使用visudo命令安全编辑
visudo# 或直接编辑文件(不推荐)
vi /etc/sudoers
在sudoers文件中添加配置:
# 允许用户执行所有命令
username ALL=(ALL) ALL# 允许用户组执行特定命令
%groupname ALL=(ALL) /bin/ls, /bin/cat
root用户特殊性
root用户是Linux系统的超级管理员:
- UID为0:这是root用户的唯一标识
- 无限权限:可以执行任何系统操作
- 系统安全:谨慎使用root权限,避免误操作
实践建议
安全最佳实践
- 最小权限原则:只给用户必需的最小权限
- 避免直接使用root:通过sudo提升权限执行管理任务
- 定期审查用户账户:删除不需要的账户,更新权限设置
学习路径建议
掌握文件系统和用户管理后,可以选择以下专业方向深入学习:
- 系统管理:继续学习服务配置、网络管理、性能优化
- 网络安全:学习漏洞挖掘、渗透测试、安全防护
- CTF竞赛:参与网络安全竞赛,提升实战技能
- 开发运维:结合编程知识,向DevOps方向发展
总结
Linux文件系统结构和用户管理是系统管理的核心基础。文件系统的层次标准为系统组织提供了清晰的框架,而用户管理系统则确保了系统的安全性和多用户环境的有序运行。
通过掌握这些基础知识,读者将能够:
- 熟练导航Linux文件系统
- 有效管理文件和目录
- 理解和配置用户权限
- 安全地执行系统管理任务
这些技能为进一步学习Linux系统管理、网络服务配置和安全防护奠定了坚实基础。建议读者通过实际操作加深理解,逐步提升Linux系统操作能力。