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

文章目录

  • 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.mzph.cn/news/680485.shtml

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

相关文章

FPGA_简单工程_数码管静态显示

一 理论 数码管是一种半导体发光器件,基本单位是发光二极管。 以六位八段数码管为例,每段需要一个端口信号,6814位。 74HC595芯片: 8位串行输入,并行输出的位移缓存器,其内部具有8位移位寄存器和一个存储…

Javaweb之SpringBootWeb案例之 登录功能的详细解析

1. 登录功能 1.1 需求 在登录界面中,我们可以输入用户的用户名以及密码,然后点击 "登录" 按钮就要请求服务器,服务端判断用户输入的用户名或者密码是否正确。如果正确,则返回成功结果,前端跳转至系统首页面…

算法学习——LeetCode力扣二叉树篇4

算法学习——LeetCode力扣二叉树篇4 222. 完全二叉树的节点个数 222. 完全二叉树的节点个数 - 力扣(LeetCode) 描述 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中&#xf…

车载诊断协议DoIP系列 —— 协议中术语解释和定义

车载诊断协议DoIP系列 —— 协议中术语解释和定义 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,…

罗德里格斯公式简要介绍

一、罗德里格斯公式(Rodrigues’ rotation formula)是一个用于计算绕任意轴旋转向量的数学公式。它是由欧仁罗德里格斯(Olinde Rodrigues)在1840年提出的。这个公式在三维空间中描述了一个向量绕着单位向量旋转θ角度后的结果。 …

C++初阶:容器(Containers)list常用接口详解

介绍完了vector类的相关内容后,接下来进入新的篇章,容器list介绍: 文章目录 1.list的初步介绍2.list的定义(constructor)3.list迭代器( iterator )4.string的三种遍历4.1迭代器4.2范围for循环 5…

无人机飞行控制系统功能,多旋翼飞行控制系统概述

飞行控制系统存在的意义 行控制系统通过高效的控制算法内核,能够精准地感应并计算出飞行器的飞行姿态等数据,再通过主控制单元实现精准定位悬停和自主平稳飞行。 在没有飞行控制系统的情况下,有很多的专业飞手经过长期艰苦的练习&#xff0…

【Docker进阶】镜像制作-用Dockerfile制作镜像(一)

进阶一 docker镜像制作 文章目录 进阶一 docker镜像制作用dockerfile制作镜像dockerfile是什么dockerfile格式为什么需要dockerfileDockerfile指令集合FROMMAINTAINERLABELCOPYENVWORKDIR 用dockerfile制作镜像 用快照制作镜像的缺陷: 黑盒不可重复臃肿 docker…

Kafka 入门笔记

课程地址 概述 定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ) 发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接受感兴趣的消息 消息队列 消息队…

leetcode:买卖股票最佳时机二

思路: 使用贪心算法:局部最优是将买卖过程中产生的正数进行相加,进而使得最后结果最大(全局最优)。 price [7,1,5,10,3,6,4] -6,4,5,-7,3,-2 正数相加就得到了最大 代码实现: 1.循环中下标从1开始 …

20240212请问如何将B站下载的软字幕转换成为SRT格式?

20240212请问如何将B站下载的软字幕转换成为SRT格式? 2024/2/12 12:47 百度搜索:字幕 json 转 srt json srt https://blog.csdn.net/a_wh_white/article/details/120687363?share_token2640663e-f468-4737-9b55-73c808f5dcf0 https://blog.csdn.net/a_w…

上位机图像处理和嵌入式模块部署(利用python开发软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 开发windows和linux软件的时候,大家一般都是习惯于用c/c语言进行开发,但是目前来说很多的开发板都是支持python语言开发的。…

RK3588平台开发系列讲解(视频篇)RKMedia 数据流向

文章目录 一、 获取RKMedia模块通道中的数据二、RKMedia的数据源和接收者三、模块通道绑定API调用 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢RKMedia是RK提供的一种多媒体处理方案,可实现音视频捕获、音视频输…

服务治理中间件-Eureka

目录 简介 搭建Eureka服务 注册服务到Eureka 简介 Eureka是Spring团队开发的服务治理中间件,可以轻松在项目中,实现服务的注册与发现,相比于阿里巴巴的Nacos、Apache基金会的Zookeeper,更加契合Spring项目,缺点就是…

前端vue 数字 字符串 丢失精度问题

1.问题 后端返回的数据 是这样的 一个字符串类型的数据 前端要想显示这个 肯定需要使用Json.parse() 转换一下 但是 目前有一个问题 转换的确可以 showId:1206381711026823172 有一个这样的字段 转换了以后 发现 字段成了1206381711026823200 精度直接丢了 原本的数据…

MogaNet实战:使用MogaNet实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文:https://arxiv.org/pdf/2211.03295.pdf 作者多阶博弈论交互这一全新视角探索了现代卷积神经网络的表示能力。这种交互反映了不同尺度上下文中变量间的相互作用效…

时域和离散域的重要转换器

自然界的模拟信号都是连续信号,也就是我们常说的时域信号,而我们的计算机只能处理离线的数字量信号,但是我们的闭环控制系统都是由离散域和时域所组成的,这里的离散域包括我们的计算机微控制器,时域包括我们的被控对象…

2024.2.3 作业

1、实现单向循环链表的头插头删尾插尾删 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef int datatype; typedef struct node {//数据域int data;//指针域struct node *next; }*Linklist; Linklist create() {Linklist s(Linklist)mallo…

linux应用 进程间通信之信号量(POSIX)

1、前言 1.1 定义 POSIX信号量是一种用于同步进程之间对共享资源访问的机制。它允许进程在访问共享资源之前进行互斥和同步操作&#xff0c;以确保数据的一致性和正确性。POSIX信号量通常由一个整数值表示&#xff0c;可以进行原子增减操作&#xff0c;以及等待和通知操作。 …

【Python网络编程之DHCP服务器】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python开发技术 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Python网络编程之DHCP服务器 代码见资源&#xff0c;效果图如下一、实验要求二、协议原理2.1 D…