《Linux 简易速速上手小册》第3章: 文件系统与权限(2024 最新版)

news2025/1/24 14:34:15

文章目录

  • 3.1 Linux 文件系统结构
    • 3.1.1 重点基础知识
    • 3.1.2 重点案例:设置一个 Web 服务器
    • 3.1.3 拓展案例 1:日志文件分析
    • 3.1.3 拓展案例 2:备份用户数据
  • 3.2 理解文件权限
    • 3.2.1 重点基础知识
    • 3.2.2 重点案例:共享项目文件夹
    • 3.2.3 拓展案例 1:保护个人文件
    • 3.2.4 拓展案例 2:设置执行脚本
  • 3.3 修改文件权限与所有权
    • 3.3.1 重点基础知识
    • 3.3.2 重点案例:部署应用程序
    • 3.3.3 拓展案例 1:保护敏感数据
    • 3.3.4 拓展案例 2:共享数据文件

3.1 Linux 文件系统结构

深入 Linux 的世界,首先要熟悉其文件系统结构。Linux 文件系统就像是一个庞大的树形图书馆,每个目录都是一个书架,每个文件就是书架上的一本书。理解这个结构,你就能轻松地在 Linux 的世界里找到你需要的任何东西。

3.1.1 重点基础知识

  • /: 根目录,Linux 文件系统的起点。所有的文件和目录都从这里开始。
  • /bin: 存放基本可执行文件(如 shell 和常用命令)的目录,这些命令对所有用户都可用。
  • /etc: 系统配置文件存放的地方。这里有启动脚本、服务的配置文件等。
  • /home: 用户的家目录。每个用户都有一个自己的目录,在 /home/用户名
  • /var: 存放经常变化的文件,如日志文件、邮件等。
  • /usr: 包含用户文档、游戏、应用程序等。是“Unix System Resources”的缩写,不是“user”的缩写。
  • /tmp: 临时文件存放地。系统重启时,这里的文件可能会被删除。

3.1.2 重点案例:设置一个 Web 服务器

假设你需要在 Linux 上设置一个简单的 Web 服务器,使用 Apache。这个案例会涉及到多个关键目录。

  1. 安装 Apache:
    大多数 Linux 发行版通过包管理器安装软件。例如,在基于 Debian 的系统上,你会使用 sudo apt-get install apache2。安装过程中,Apache 的可执行文件会被放在 /usr/bin/usr/sbin

  2. 配置文件:
    Apache 的主配置文件,如 httpd.confapache2.conf,位于 /etc/apache2 目录。你可能需要编辑这个文件,以适应你的需求。

  3. 网站文件:
    默认情况下,Apache 从 /var/www/html 目录中提供网页。你需要将你的网页文件(如 HTML、CSS、JavaScript 文件)放在这里。

3.1.3 拓展案例 1:日志文件分析

Linux 系统和应用程序(如 Apache)的日志文件通常保存在 /var/log 目录。例如,Apache 的访问日志和错误日志通常位于 /var/log/apache2。理解这个目录的结构对于日志文件的监控和分析至关重要。

3.1.3 拓展案例 2:备份用户数据

假设你需要备份 /home 目录中所有用户的数据。这个目录包含了用户的个人文件和设置。你可以使用 rsynctar 命令来创建 /home 目录的备份,将其存放到外部存储设备或远程服务器上。

通过这些案例,我们不仅能够更好地理解 Linux 文件系统的结构,还能学会如何在实际生产中应用这些知识。无论是设置 Web 服务器、分析日志文件,还是备份用户数据,掌握文件系统结构都是成功完成这些任务的关键。

在这里插入图片描述


3.2 理解文件权限

在 Linux 的世界里,文件权限是维持系统安全和秩序的关键。就像你不会把家里的钥匙随便给陌生人一样,你也不希望你的重要文件被未授权的用户访问或修改。

3.2.1 重点基础知识

  • 权限类型: Linux 文件权限分为三种:读(r)、写(w)和执行(x)。读权限允许查看文件内容,写权限允许修改文件内容,执行权限允许运行文件。
  • 权限群组: 权限被分配给三个群组:文件所有者(u),文件所属组(g),其他用户(o)。每个文件都有这三组权限。
  • 查看权限: 使用 ls -l 命令可以查看文件或目录的权限。输出中的第一列显示了文件类型和权限,例如 -rwxr-xr-- 表示一个普通文件,所有者有所有权限,所属组有读和执行权限,其他用户只有读权限。
  • 修改权限: 使用 chmod 命令修改文件或目录的权限。例如,chmod g+w file.txt 会给文件所属组增加写权限。

3.2.2 重点案例:共享项目文件夹

假设你正在团队项目上工作,需要创建一个项目文件夹,让团队中的所有成员都能访问和修改里面的文件。

  1. 创建项目文件夹:

    mkdir project
    
  2. 设置合适的权限:
    为了让团队成员能够读取和写入项目文件夹,你需要修改文件夹的权限。

    chmod 775 project
    

    这个命令设置项目文件夹的权限,使得所有者和所属组成员可以读取、写入和执行,而其他用户只能读取和执行。

  3. 更改文件夹所属组:
    如果你的团队成员都属于一个特定的用户组,你可以更改项目文件夹的所属组,以方便管理。

    chgrp team project
    

    这个命令将项目文件夹的所属组更改为 “team”。

3.2.3 拓展案例 1:保护个人文件

为了防止其他用户访问你的个人文件,你可以移除其他用户的所有权限。

chmod o-rwx personal.txt

这个命令移除了其他用户对 personal.txt 文件的读取、写入和执行权限。

3.2.4 拓展案例 2:设置执行脚本

假设你编写了一个脚本 script.sh,需要让系统上的所有用户都能执行它。

chmod +x script.sh

这个命令给 script.sh 文件添加执行权限,任何用户都可以运行这个脚本。

通过这些案例,我们可以看到文件权限在日常工作中的重要性,无论是在团队合作中共享资源,保护个人文件的隐私,还是设置脚本的执行权限。掌握如何查看和修改文件权限,你就能更好地管理你的文件和目录,保护它们免受未授权访问。

在这里插入图片描述


3.3 修改文件权限与所有权

掌握如何修改文件的权限和所有权是 Linux 用户和管理员的一项重要技能。这不仅关系到系统的安全性,也影响到多用户环境中的数据共享和访问控制。让我们深入了解如何有效地使用 chmodchown 命令。

3.3.1 重点基础知识

  • chmod: 修改文件或目录的权限。可以使用数字模式(如 755)或符号模式(如 u+x)。
  • chown: 改变文件或目录的所有者和所属组。格式为 chown 用户名:组名 文件名
  • 数字模式: 权限的数字表示法,例如 755,其中 7 表示所有者权限,5 表示组权限和其他用户的权限。数字是读(4)、写(2)和执行(1)权限的和。
  • 符号模式: 使用字母(如 r, w, x)和操作符(如 +, -, =)来修改权限。例如,u+x 给文件所有者添加执行权限。

3.3.2 重点案例:部署应用程序

假设你是服务器管理员,需要部署一个 Web 应用程序,并确保只有特定的用户和组能访问这些文件。

  1. 创建应用目录:

    mkdir /var/www/myapp
    
  2. 更改目录所有权:
    假设有一个用户 webadmin 和一个组 webgroup 应该管理这个应用。

    chown webadmin:webgroup /var/www/myapp
    
  3. 设置目录权限:
    确保组内成员可以读取和写入目录,而其他用户则不能访问。

    chmod 770 /var/www/myapp
    

这个案例确保了 Web 应用的目录安全,只有授权的用户和组成员可以访问。

3.3.3 拓展案例 1:保护敏感数据

如果你有一些敏感数据需要保护,比如用户信息,你需要确保这些文件只有所有者可以访问。

chmod 700 sensitive_data.txt

这个命令设置文件权限,使得只有文件的所有者可以读取、写入和执行该文件。

3.3.4 拓展案例 2:共享数据文件

在一个团队协作的项目中,你可能需要设置一个目录,让团队中的所有成员都可以访问和修改里面的文件。

chgrp projectgroup shared_data
chmod 770 shared_data

这两个命令将 shared_data 目录的组改为 projectgroup,并设置权限,使得组内成员可以完全访问目录。

通过这些案例,我们可以看到,理解和运用 chmodchown 命令对于管理 Linux 系统中的文件和目录权限至关重要。无论是保护敏感数据,还是促进团队之间的协作,正确的权限和所有权设置都是确保系统安全和效率的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1446196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络编程项目:电子辞典

项目要求: 登录注册功能,不能重复登录,重复注册。用户信息也存储在数据库中。单词查询功能历史记录功能,存储单词,意思,以及查询时间,存储在数据库基于TCP,支持多客户端连接&#x…

python安装cv2失败

问题:安装cv2包失败 解决方法: pip install opencv-python或在Anaconda中conda install opencv-python

二、DataX安装

DataX安装 一、简介二、系统要求三、部署 一、简介 官方地址:https://github.com/alibaba/DataX/blob/master/userGuid.md 二、系统要求 LinuxJDK(1.8以上,推荐1.8) Centos7.9的java1.8安装命令:yum install java-1.8.0-openjdk.x86_64 Py…

【Java程序设计】【C00254】基于Springboot的java学习平台(有论文)

基于Springboot的java学习平台(有论文)) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的学习平台 本系统分为系统功能模块、管理员功能模块、教师功能模块以及学生功能模块。 系统功能模块:在平台…

【国产MCU】-CH32V307-基本定时器(BCTM)

基本定时器(BCTM) 文章目录 基本定时器(BCTM)1、基本定时器(BCTM)介绍2、基本定时器驱动API介绍3、基本定时器使用实例CH32V307的基本定时器模块包含一个16 位可自动重装的定时器(TIM6和TIM7),用于计数和在更新新事件产生中断或DMA 请求。 本文将详细介绍如何使用CH32…

大话设计模式——1.模板方法模式(Template Method Pattern)

定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 例子:比较重大的考试往往有A、B两套试卷,其中一套出现问题可以立马更换另一套。 定义基…

金融信贷风控系统设计

前言 近一年多以来在金融行业负责风控系统,根据自己工作中的经验,写下这篇文章。既是对自己在风控领域工作的总结,也是给刚入行和准备入行的朋友打个样,希望能有所帮助。 为什么要有风控系统 记得 2016 年信贷行业的发展形势还…

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由 哈喽小伙伴们好,我是Stark-C~ 关注我的小伙伴都知道,我之前有分享过我的创作过程与工具,其中介绍了我个人其实一直都是使用Markdown的编辑器来进行图文创作的。 我…

多机多卡运行nccl-tests和channel获取

nccl-tests 环境1. 安装nccl2. 安装openmpi3. 单机测试4. 多机测试mpirun多机多进程多节点运行nccl-testschannel获取 环境 Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-91-generic x86_64)cuda 11.8 cudnn 8nccl 2.15.1NVIDIA GeForce RTX 4090 *2 1. 安装nccl #查看cuda版本 nv…

shiny,一个好用的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个好用的 Python 库 - shiny。 Github地址:https://github.com/posit-dev/py-shiny Python Shiny 是一个用于创建交互式 Web 应用程序的开源库,它基于 Flask 和 React 技…

[JavaWeb玩耍日记]Maven的安装与使用

目录 一.作用 二.安装 三.使用 2.对项目使用compile命令进行编译,看看新的文件会在哪里产生? 3.需要认识的命令 4.Maven对项目执行不同命令的生命周期特点? 5.如何导入工程外的Maven? 6.如何直观地查看Maven导入了哪些工程或哪些jar包…

行业科普应用分享 | 用于安全和安保的仪器仪表

【前言】 物联网带来了对安全和安保的新要求。利用物联网,运营商可以从复杂和分布式的装置中获益。此外,自主系统在现代工业的运作中正变得越来越重要。 从制造业到农业,这些远程操作需要仪器提供持续监测,以提供安全和保障。这…

一、Docker部署MySQL

Docker部署MySQL 一、安装Docker二、拉取MySQL镜像1.选择拉取版本2.拉取镜像 三、启动MySQL1.确定好挂载目录2.启动3.查看是否启动4.开启远程访问权限 一、安装Docker 安装教程:https://qingsi.blog.csdn.net/article/details/131270071 二、拉取MySQL镜像 1.选择…

使用 FFmpeg 将视频转换为 GIF 动画的技巧

使用 FFmpeg 将视频转换为 GIF 动画 FFmpeg 可以将视频转换为 GIF 动画,方法如下: 1. 准备工作 确保您已经安装了 FFmpeg。 熟悉 FFmpeg 的命令行使用。 了解 GIF 动画的基本知识。 2. 基本命令 ffmpeg -i input.mp4 output.gif 3. 参数说明 -i in…

如何编译zlib?

学习文章:windows zlib库编译步骤_nmake 编译 zlib-CSDN博客 记录关键步骤: 打开 执行: 先cd到该目录: C:\Users\xxx\Downloads\zlib-1.2.11\contrib\masmx86 (这是我的zlib源码的下载路径) 执行bld_ml32.bat 再…

Xcode配置GLFW GLAD (MAC)

这里的GLFW用的是静态链接 博主反复修改,实在是没能找到为什么用动态会出现线程报错 下载GLAD:版本我一般是选倒数第二新,profile记得选core 点击GENRATE 点glad.zip获得下载 下载GLFW 点击download 最后,将两个文件都放到项目里面去 打开…

Mac如何安装python?

一、问题 Mac如何安装python? 二、解决 1、系统自带python Mac系统均自带Python环境,用户在终端输入“python3”命令就可以运行,如图所示 2、官网下载 Download Python | Python.org (1)在Download下找到macOS &am…

数据库基础学习笔记

一.基础概念 数据库、数据库管理系统、SQL 主流数据库: mysql的安装:略 mysql图形化界面的安装:略 二.数据模型 1). 关系型数据库(RDBMS) 概念:建立在关系模型基础上,由多张相互连接的二维表…

【python】Fraction类详解及生成分数四则运算“试卷”

文章目录 一、前言实验所需的库终端指令Fraction类1. Fraction(numerator, denominator):2. Fraction(numerator)3. Fraction()4. 分数作参数5. 负分数作参数6. 字符串作参数7. 小数作参数8. 科学计数法9. 浮点数作参数10. 浮点数精度问题11. Decimal对象作参数 二、…

代码随想录刷题笔记 DAY 23 | 修剪二叉搜索树 No.669 | 将有序数组转换为二叉搜索树 No.108 | 把二叉搜索树转换为累加树 No.538

文章目录 Day 2301. 修剪二叉搜索树(No. 669)1.1 题目1.2 笔记1.3 代码 02. 将有序数组转换为二叉搜索树(No. 108)2.1 题目2.2 笔记2.3 代码 03. 把二叉搜索树转换为累加树(No. 538)3.1 题目3.2 笔记3.3 代…