云计算基础-2:文件与用户管理

发布时间:2026/5/25 14:14:01

云计算基础-2:文件与用户管理 Linux 入门文件与用户管理完全指南本文基于 云计算基础VMware 落地部署 CentOS 7 核心课程内容整理贴合生产环境实操新手可直接跟着步骤上手完整覆盖文件管理、用户权限两大核心模块。 博客原文链接BreezeLinux 目录结构Linux 遵循FHSFilesystem Hierarchy Standard文件系统层级标准和 Windows 最核心的差异在于目录组织方式Windows多根目录结构文件按C:\、D:\、E:\分盘存储Linux单根目录结构所有文件和目录都从唯一的根/延伸而来在终端执行以下命令即可查看根目录下的所有一级目录ls/Linux ls 命令标准格式ls[选项][目标目录]ls固定主命令必须写[选项]可选用来切换显示效果简写加-[目标目录]可选指定查看哪个文件夹不写默认查看当前所在文件夹**注意**ls 选项 目标目录 这三个之间都是有空格分隔的不强制空格数量只要空开就行。命令解释日常鼠标操作ls等同于双击打开一个文件夹查看里面所有文件、文件夹Windows 命令行ls完全对应 CMD/PowerShell 里的dir命令举个简单的例子说明你站在「 Downloads 下载文件夹 」里敲一下ls屏幕立刻列出照片.jpg、笔记.txt、安装包.zip 等你在这个文件夹里存储的内容。核心目录功能说明目录核心功能/bin普通用户可执行的基础命令如ls、date、cat等/sbin管理员 root 专属的系统管理命令如服务管理、磁盘分区相关指令/boot系统启动相关文件包括内核 kernel、引导装载程序 grub 等/dev设备文件目录所有硬件设备都会映射为这里的文件如硬盘/dev/sda、分区/dev/sda1/etc系统和服务的核心配置文件目录如网络配置、服务参数、用户权限配置都存放在这里/home普通用户的家目录每个普通用户都会在这里有一个同名专属目录如用户alice的家目录为/home/alice/root超级用户 root 的专属家目录/lib/lib64系统共享库文件Glibc/lib64为 64 位系统专属的库文件目录/media移动设备默认挂载点如 U 盘、光盘等插入后会自动挂载到这里/mnt手动挂载设备的目录常用于临时挂载硬盘、网络存储等/opt第三方软件的可选安装目录/proc虚拟文件系统不占用实际磁盘空间实时反映内核、进程、硬件的运行状态/sys虚拟文件系统主要管理硬件设备相关信息/tmp全局可写的临时文件目录进程运行产生的临时文件默认存放在这里重启后数据会清空/usr系统核心文件目录相当于 Windows 的C:\Windows其中/usr/local是软件默认安装目录相当于 Windows 的C:\Program Files/var动态变化文件目录存放数据库数据、系统日志、邮件、缓存等持续增长的内容/lostfound文件系统修复时存放无链接的碎片文件的目录文件管理核心操作文件与目录基础操作所有命令均提供可直接复制执行的示例新手可直接在终端练习。创建文件类似于 Windows 系统中右键新建空白文本文档或其他文件的操作使用touch命令语法touch 文件名# 在当前目录创建 file1.txt 文件touchfile1.txt# 查看创建结果lshttps://cdn.benszen.com/blogs-photo/linux-2/3.png创建目录相当于 Windows 系统中右键新建文件夹的操作使用mkdir命令语法mkdir [选项] 目录名核心选项-p递归创建多级目录上级目录不存在时自动创建# 创建单个目录 dir1mkdirdir1# 递归创建多级嵌套目录 a/b/cmkdir-pa/b/c# 查看创建结果ls复制文件 / 目录相当于 Windows 系统中对文件 / 文件夹执行复制 粘贴的操作-r 选项可完整复制整个文件夹及内部所有内容使用cp命令语法cp [选项] 源文件/目录 目标路径核心选项-r递归复制目录及目录内所有内容# 把 file1.txt 复制到 dir1 目录中cpfile1.txt dir1/# 递归复制 dir1 目录为 dir2 目录cp-rdir1 dir2# 查看复制结果lsdir1移动 / 重命名文件相当于 Windows 系统中对文件 / 文件夹执行剪切 粘贴操作同时也能直接实现文件 / 文件夹重命名的功能使用mv命令语法mv 源文件/目录 目标路径/新名称# 把 file3.txt 移动到 dir1 目录中mvfile3.txt dir1/# 把 file1.txt 重命名为 file2.txtmvfile1.txt file2.txt# 查看结果ls删除文件 / 目录相当于 Windows 系统中删除文件 / 文件夹后直接清空回收站会彻底删除数据务必谨慎操作使用rm命令语法rm [选项] 文件/目录常用选项-r递归删除目录及所有内容常用选项-f强制删除不提示确认⚠️警告rm -rf命令删除的文件极难恢复执行前务必确认路径正确# 同时删除 file2.txt 文件rm-rffile2.txt# 删除 dir1 和 dir2 两个目录及目录内所有内容rm-rfdir1 dir2# 查看删除结果ls切换目录相当于 Windows 系统中在文件资源管理器里双击打开 / 返回文件夹切换当前正在浏览的文件夹路径使用cd命令路径分为绝对路径和相对路径两种绝对路径从根目录/开始写的完整路径无论当前在哪个目录都能精准定位相对路径相对于当前所在目录的路径写法更简洁pwd命令可以显示我们目前在哪个目录下# 绝对路径直接切换到 /home 目录cd/home# 相对路径切换到当前目录下的 zhangsan 目录cdzhangsan# 切换到上一级目录cd..# 直接切换到当前用户的家目录cd文件内容查看与过滤类似于 Windows 系统中用记事本 / Office 打开文档查看内容或是用查找功能筛选文档内的关键信息根据文件大小和使用场景选择对应的查看方式无需每次都打开编辑器。命令适用场景示例cat一次性展示文件全部内容适合小文件cat /root/file1.txtmore翻页查看大文件回车向下翻行空格向下翻页more /root/file1.txthead查看文件开头部分默认显示前 10 行head /root/file1.txttail查看文件结尾部分默认显示最后 10 行常用来查看实时日志tail /root/file1.txtgrep过滤文件中包含指定关键字的内容精准定位信息grep abc /root/file1.txtgrep示例过滤出file1.txt中包含root的所有行greproot/root/file1.txt这里简单做个简单示例# 我准备了一个file1.txt文件里面有11行内容# 使用cat查看全部内容[rootlocalhost ~]# cat file1.txt111111111111111111222222222222222222223333333333334444444444444root55555555555555666666666666666777777777777888888888888999999999999aaaaaaaaaaaaroot bbbbbbbbbbbbb# 使用more查看/etc/passwd文件这里内容比较长可以自己手动试试回车空格翻页more/etc/passwd# 使用head查看文件内容默认前10行[rootlocalhost ~]# head file1.txt111111111111111111222222222222222222223333333333334444444444444root55555555555555666666666666666777777777777888888888888999999999999aaaaaaaaaaaaroot[rootlocalhost ~]# head -5 file1.txt111111111111111111222222222222222222223333333333334444444444444root55555555555555[rootlocalhost ~]# head -3 file1.txt11111111111111111122222222222222222222333333333333[rootlocalhost ~]## 使用tail查看文件内容默认后10行[rootlocalhost ~]# tail file1.txt222222222222222222223333333333334444444444444root55555555555555666666666666666777777777777888888888888999999999999aaaaaaaaaaaaroot bbbbbbbbbbbbb[rootlocalhost ~]#[rootlocalhost ~]# tail -4 file1.txt888888888888999999999999aaaaaaaaaaaaroot bbbbbbbbbbbbb[rootlocalhost ~]## 使用grep筛选出root的行[rootlocalhost ~]# grep root file1.txt4444444444444root aaaaaaaaaaaaroot[rootlocalhost ~]#Linux 文件类型详解Linux 中一切皆文件不同类型的文件有明确的标识与Windows不同的是Linux不能通过文件颜色或扩展名判断文件类型Linux 系统本身没有文件扩展名的概念。执行以下命令即可查看文件的类型# 查看文件类型与详细属性ll-d/bin/ls /dev/sda /home# 这里的 ll 是 ls -ld 这个命令的简写用于以长格式显示文件 / 目录本身的详细信息不会进入目录内部。可以看到红框圈出来的地方就是代表每个文件的类型分别是普通文件块设备文件目录文件。常见文件类型标识文件类型说明-普通文件包括文本文件、二进制文件、压缩包、图片、视频等d目录文件也就是文件夹终端中默认显示为蓝色非常见文件类型标识文件类型说明b块设备文件存储设备如硬盘、U 盘示例/dev/sdac字符设备文件终端、打印机等串行输入输出设备示例/dev/tty1l链接文件相当于 Windows 的快捷方式终端中默认显示为淡蓝色s套接字文件用于网络通信的特殊文件p管道文件用于进程间通信的特殊文件Vim 编辑器完全使用指南Linux 中修改文件内容最常用的工具是 vi/vim 编辑器同时也是个程序开发工具掌握基础操作即可应对绝大部分的编辑场景。vi/vim 的使用vi/vim 是 Linux 系统中核心的文本编辑器其操作核心分为三种模式分别是命令模式Command Mode又称普通模式、输入模式Insert Mode又称插入模式**和**命令行模式Command-Line Mode又称底线命令模式三种模式可相互切换覆盖文本编辑的全流程操作下面讲述内容可以结合这幅图来理解。命令模式用户启动 vi/vim 后会默认进入命令模式。此状态下所有键盘敲击动作都会被 Vim 识别为编辑命令而非输入字符该模式是 vi/vim 的核心中枢可完成光标移动、文本复制剪切、模式切换等核心操作无法直接进行文本输入。常用命令如下i– 切换到输入模式在光标当前位置开始输入文本a– 切换到输入模式在光标下一个位置开始输入文本o– 切换到输入模式在当前行的下方插入一个新行并开始输入O– 切换到输入模式在当前行的上方插入一个新行并开始输入dd– 剪切删除光标所在的整行内容yy– 复制光标所在的整行内容p小写 – 粘贴剪贴板内容到光标所在位置的下方P大写 – 粘贴剪贴板内容到光标所在位置的上方u– 撤销上一次操作:– 切换到底线命令模式在编辑器最底一行输入命令若想要编辑文本启动 Vim 进入命令模式后按下i/a/o等按键即可切换到输入模式。命令模式仅支持基础编辑命令更复杂的文件操作需通过底线命令模式完成。输入模式在命令模式下按下i/a/o等插入类按键即可进入输入模式按下Esc键可退出输入模式切回命令模式。此模式下的键盘操作会被识别为文本输入可完成正文的编写与修改支持以下常用按键操作ENTER回车键文本换行BACK SPACE退格键删除光标前一个字符方向键在文本中移动光标位置ESC退出输入模式切换回命令模式命令行模式底线命令模式在命令模式下按下英文冒号:即可进入底线命令模式此时编辑器底部会出现:提示符可输入单字符或多字符的操作命令支持文件保存、退出、查找替换等大量扩展操作。按下ESC键可随时退出该模式切回命令模式。基础常用命令如下命令需配合前缀:使用:w– 保存当前文件的修改:q– 退出 Vim 编辑器文件无修改时可正常退出:wq– 保存文件修改并退出 Vim 编辑器:q!– 强制退出 Vim 编辑器放弃所有未保存的修改模式切换逻辑打开文件 → 默认进入【命令模式】 命令模式 → 按 i/a/o → 【插入模式】编辑内容 命令模式 → 按 v/V/Ctrlv → 【可视模式】批量选择编辑 命令模式 → 按 : → 【末行模式】保存/退出/查找替换 任意模式 → 按 ESC → 回到命令模式底线命令模式扩展操作在命令模式下按:进入末行模式常用指令如下# 另存为 file9.txt 文件 :w file9.txt # 显示文件行号 :set nu # 取消显示行号 :set nonu # 显示文件中的控制字符 :set list # 查找替换将 1-5 行中所有的 root 替换为 zhangsan :1,5s/root/zhangsan/g举个简单的例子这里我们主要学会如何在文件里写入内容更改内容然后保存退出即可# 编辑file10.txt vim file10.txt此时我们进入了命令模式我们要想写入内容就得按i进入输入模式可以看到左下角出现了插入/insert的字样这是代表我们进入了输入模式可以开始编辑内容了当我们编辑完内容想保存退出时可以按Esc回到命令模式可以看到左下角的插入/insert的字样消失这时如果还想编辑可以继续按i去更改内容或者输入:wq即可保存并退出最后我们可以使用cat查看该文件的内容是否被我们写入用户与用户组管理Linux 是多用户多任务操作系统系统中每一个运行的进程、每一个文件都有对应的归属用户和用户组用户权限直接决定了对文件 / 进程的操作权限。核心概念系统上运行的每一个进程运行中的程序都会以一个特定用户的身份运行系统中的每一个文件和目录都有对应的归属用户用户对文件和目录的访问权限由用户身份和文件的权限配置共同决定每一个用户都有一个专属的基本组同时可以加入多个附加组常用查看命令# 查看当前登录用户的 UID、GID、所属组等信息id# 查看文件 / 目录的归属用户和归属组ll /home/# 查看系统中运行的进程对应的启动用户psaux用户与组核心配置文件用户和用户组的所有信息都存储在系统固定的配置文件中我们可以使用vim进去查看无需手动修改了解结构即可看懂用户权限规则。/etc/passwd用户基本信息文件每一行对应一个用户用冒号:分割为 7 个字段格式如下用户名:x:UID:GID:描述信息:家目录:登录shell示例root 用户的信息root:x:0:0:root:/root:/bin/bash字段详细说明用户名登录系统的账号名称密码占位符x代表密码存储在/etc/shadow中不在这里明文存储UID用户的唯一标识系统约定0特权用户 root拥有系统最高权限1~999系统用户用于运行系统服务默认禁止登录1000普通用户我们手动创建的用户默认从 1000 开始GID用户所属基本组的 ID描述信息用户的备注说明默认为用户名家目录用户登录系统后默认进入的目录root 用户为/root普通用户默认为/home/用户名登录 shell用户登录后使用的命令解释器默认是/bin/bash设置为/sbin/nologin代表禁止该用户登录系统/etc/shadow用户密码信息文件存储用户的加密密码和密码策略仅 root 用户可访问每一行用冒号:分割为 9 个字段格式如下登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留示例root 用户的信息root:$6$Yohyv//NSkE./6zz$KK2LwBwkDy2weJJ6kR/5lebq1E9RzRy8ASjWOwMZSpbvg5K2LjUNylkG0kxbY/kxU.QNMsIRW6gMqQdO/FWQU0::0:99999:7:::字段详细说明登录名与/etc/passwd中的用户名一致加密口令加密后的用户密码加密算法标识$1$开头MD5 加密$5$开头SHA-256 加密$6$开头SHA-512 加密系统默认空值用户无密码登录无需输入密码*账号被锁定!!密码已过期最后一次修改时间从 1970 年 1 月 1 日起到用户最后一次修改密码的天数最小时间间隔两次修改密码之间需要间隔的最小天数0 代表无限制最大时间间隔密码保持有效的最大天数默认 99999 代表永不过期警告时间密码过期前多少天开始提醒用户修改密码不活动时间密码过期后用户仍可登录的宽限天数到期后账号禁用失效时间账号的绝对过期时间到该日期后账号直接失效无法登录保留字段暂无用途/etc/group用户组信息文件每一行对应一个用户组用冒号:分割为 4 个字段格式如下组名:组密码:组ID:组成员 示例root:x:0:组分类基本组创建用户时系统自动创建的与用户名同名的组是用户的默认组附加组用户额外加入的其他组用于给用户分配额外权限用户与用户组管理命令用户管理操作创建用户使用useradd命令不指定选项时系统会自动创建同名基本组、家目录、默认 shell。# 创建普通用户 user01使用默认配置useradduser01# 查看用户信息iduser01# 创建用户 user02并指定 UID 为 6666useradduser02-u6666# 创建用户 user03并指定家目录为 /user03useradduser03-d/user05这里id不是1000开始是因为创建系统时候被强制创建了一个zhangsan的用户1000就给它占用了。删除用户使用userdel命令核心选项-r会同时删除用户的家目录和相关配置文件。# 删除 user02 用户同时删除家目录userdel-ruser02设置用户密码使用passwd命令root 用户可以修改所有用户的密码普通用户只能修改自己的密码。# root 用户修改 user01 用户的密码passwduser01# 普通用户登录后修改自己的密码passwd修改用户属性(了解)使用usermod命令可修改用户的 shell、所属组、家目录等属性。# 修改 user02 的登录 shell 为 /sbin/nologin禁止登录usermod-s/sbin/nologin user02用户组管理操作创建用户组使用groupadd命令。# 创建名为 hr 的用户组groupaddhr# 查看创建结果tail-3/etc/group# 创建组 net01并指定 GID 为 1007groupaddnet01-g1007# 查看组信息grepnet01/etc/group删除用户组使用groupdel命令。# 删除 net01 组groupdelnet01组成员管理# 把 user01 用户追加到 hr 附加组-aG 代表追加不会覆盖原有组usermod-aGhr user01# 查看用户所属组iduser01# 把 user01 从 hr 组中移除gpasswd-duser01 hr普通用户提权方式普通用户默认没有系统管理权限需要执行管理员命令时有两种常用提权方式。永久提权su 命令切换到 root 用户获得完整的管理员权限操作完成后退出即可回到原用户。# 普通用户切换到 root 用户- 代表切换到 root 的完整环境su- root输入 root 用户的密码后即可获得完整的管理员权限执行所有系统操作。临时提权sudo 命令仅给当前执行的命令临时赋予 root 权限执行完成后自动退回普通用户权限可控、更安全是生产环境的首选方案。sudo 工作原理用户执行sudo命令时系统会查找/etc/sudoers文件判断用户是否有 sudo 执行权限确认用户有权限后提示用户输入自己的密码确认密码验证通过后以 root 身份执行后续的命令执行完成后自动退回到原普通用户sudo 配置示例给普通用户lisi配置 sudo 权限最简单的方式是将用户加入wheel组RHEL/CentOS 系统默认给 wheel 组配置了完整的 sudo 权限。# 1. 创建 lisi 用户并加入 wheel 附加组useraddlisi-Gwheel# 2. 查看用户信息确认已加入 wheel 组idlisi# 3. 给 lisi 用户设置密码passwdlisi# 4. 切换到 lisi 用户使用 sudo 执行管理员命令su- lisi# 直接创建用户会提示权限不足useraddwanger# 加上 sudo 即可临时提权执行sudouseraddwanger# 查看创建结果idwangersudo 配置文件语法/etc/sudoers是 sudo 的核心授权文件语法如下用户 登录的主机(可切换的身份) 可以执行的命令第一个红框root 用户行这是单用户 sudo 权限配置规则为root ALL(ALL) ALL授权对象系统的root超级用户完整含义允许 root 用户在任意主机上以系统中任意用户的身份执行系统里的所有命令。这是 Linux 默认给 root 用户的全量管理员 sudo 权限。第二个红框% wheel 组行这是用户组 sudo 权限配置%开头代表授权对象是用户组规则为%wheel ALL(ALL) ALL授权对象系统的wheel用户组所有加入这个组的用户都会继承这条权限完整含义允许 wheel 组内的所有用户在任意主机上以系统中任意用户的身份执行系统里的所有命令。这是 Linux 常用的、给普通用户批量授予管理员权限的方式。示例针对 lisi 用户的配置示例注意修改/etc/sudoers使用visudo命令直接回车编辑它会自动校验语法避免配置错误导致 sudo 权限锁死也可以用vi/vim编辑器。示例 1给 lisi 单独授予全量 sudo 权限和 root 一致在 sudoers 文件中添加一行lisi ALL(ALL) ALL效果lisi 可通过sudo 命令执行所有管理员操作执行时需要输入 lisi 自己的用户密码。示例 2把 lisi 加入 wheel 组继承组的全量权限无需修改 sudoers 文件直接执行终端命令usermod -aG wheel lisi效果和示例 1 完全一致适合给多个用户批量授权的场景。示例 3给 lisi 免密全量 sudo 权限执行 sudo 无需输密码在 sudoers 文件中添加一行lisi ALL(ALL) NOPASSWD: ALL效果lisi 执行 sudo 命令时无需输入密码直接获得 root 权限适合自动化脚本等场景。su 与 sudo 的核心区别对比维度su 命令sudo 命令权限范围切换到目标用户后获得该用户的完整权限无时间限制仅给当前执行的单条命令赋予临时权限执行完成后立即回收密码要求需要输入目标用户如 root的密码只需要输入当前用户自己的密码无需泄露 root 密码权限控制无法精细化控制切换后可执行所有操作可通过配置文件精细化限制用户可执行的命令权限粒度更细日志审计无法审计切换后执行的具体操作所有执行的 sudo 命令都会记录日志可审计追溯适用场景需要长时间执行大量管理员操作的场景临时执行单条 / 少量管理员命令的场景生产环境首选

相关新闻