当前位置: 首页 > news >正文

linux文件权限与目录配置

用户与用户组

linux一般将文件可读写的身份分为三个类别:拥有者(owner)、所属群组(group)、其他人(other)
三种身份都有读、写、执行等权限

  1. 文件拥有者
    linux是个多人多任务的系统,可能存在多个人同时使用一台主机的情况,这就需要对每个用户的隐私进行保护
    可以设置文件只有拥有者才可以查看,其他用户就查看不到这个文件的内容啦
  2. 用户组概念
    可以设置文件对一组用户可见,保证团队工作的效率与隐私性
    每个账号都可以有多个用户组支持
  3. 其他人
    其他人可以通过组内用户访问文件
  • linux用户身份与用户组记录的文件
    默认情况下,所有的系统上的账号与普通用户、root用户信息都记录在**/etc/passwd文件中,个人密码记录在/etc/shadow文件中,所有组名记录在/etc/group**中

打开/etc/passwd文件后可以看到里面有很多数据,但是很多用户都不是自己创建的,这就是系统自己创建的系统用户,也就是伪用户
在这里插入图片描述
这些系统用户不能用来登录系统,但是也不能删除。因为一旦删除,依赖这些用户运行的进程将不能正常执行,会导致系统问题

linux文件权限概念

linux文件属性

列出文件后可以查看其相关属性
在这里插入图片描述
上述图片从左到右为:
文件的类型权限,链接数,文件拥有者,文件所属用户组,文件大小,文件最后被修改的时间,文件名

  • 第一栏为文件的类型与权限,含10个字符
    • 第一个字符代表文件是目录、文件、链接文件等
      • d:目录
      • -:文件
      • l:链接文件
      • b:设备文件里面可供存储的周边设备(可按块随机读写的设备)
      • c:设备文件里面的串行端口设备,如键盘、鼠标(一次性读取设备)
    • 之后的字符,3个为一组,均为rwx三个参数的组合,分别为可读、可写、可执行
      • 第一组为文件拥有者具备的权限
      • 第二组为加入用户组成员的权限
      • 非本人非用户组成员的其他账号的权限
  • 第二栏表示有多少文件名链接到此节点
    每个文件都会将它的权限与属性记录到文件系统的inode中,但我们平时使用的文件数确是使用文件名来记录,故每个文件名都会链接到一个inode,这个属性记录的就是有多少不同的文件名链接到同一个inode号码
  • 第三栏表示文件(或目录)拥有者的账号
  • 第四栏表示这个文件的所属用户组
  • 第五栏表示文件的容量大小,默认单位为Bytes
  • 第六栏为文件的创建日期或是最近的修改日期

修改文件属性与权限

  • chgrp 修改文件所属用户组
    change group的缩写
    注意,要修改的组名必须在/etc/group文件中才行,否则会显示错误

    chgrp [-R] 修改为用户组 dirname/filename  
    
    • 选项与参数
      -R:进行递归修改,即子目录下的所有文件、目录进行同步修改

    对于文件修改:
    在这里插入图片描述
    可以看到用户组已经修改
    对于文件夹修改:
    在这里插入图片描述
    在这里插入图片描述
    其内部文件也进行了递归修改

  • chown 修改文件拥有者

    chown [-R] 新拥有者名称 目标文件(若是文件夹,需要有-R参数)
    chown [-R] 新拥有者名称:新用户组名称 目标文件(若是文件夹,需要有-R参数)
    

    chown也可以顺便修改用户组的名称
    在这里插入图片描述

  • chmod 修改文件权限,SUID、SGID、SBIT等的特性

    • 数字类型修改权限
      rwx视为二进制

      chmod [-R] 权限数字 文件或目录
      

      在这里插入图片描述

    • 符号类型修改权限
      权限分别对应三种身份:user(u),group(g), others(o)
      还有一种all(a)

      chmodu、g、o、a+(加入)、-(移除)、=(设置)r、w、x文件或目录

      可以对每一部分权限进行具体设置
      在这里插入图片描述

目录与文件的权限意义

  • 权限对文件的重要性

    • r:可以读取文件内容
    • w:可编辑、修改文件内容(但是不能删除文件)
    • x:文件具有可以被系统执行的权限

    对于rwx权限来说,主要都是针对文件的内容而言,与文件名的存在与否没有绝对关系

    在windows下,文件是否具有执行能力是由扩展名来判断的,如exe,bat等
    但是在linux下,文件是否能被执行是借由是否具有[x]这个权限来决定的,与文件名没有绝对关系

  • 权限对目录的重要性
    文件是存放实际数据的存在,目录主要的内容是记录文件名列表,文件名与目录有强烈的关联

    • r:可以读取目录下文件名数据
    • w:具有改动该目录结构列表的权限
    • x:用户是否能进入该目录称为工作目录
      要开放目录给任何人浏览时,应至少需要基于r及x权限,但w权限不能随便给

linux文件种类

任何设备在linux下都是文件

  • 常规文件
    一般我们在进行读写的类型的文件,在ls -al所显示出来的属性方面,第一个字符为[-]
    依照文件的内容,又可以分为:

    • 纯文本文件
    • 二进制文件
    • 数据文件:如linux在用户登录时会将登录的数据记录在/var/log/wtmp文件内,该文件是一个数据文件,可以通过last命令读取出来,但是使用cat时会出现乱码
  • 目录:第一个属性为[d]

  • 链接文件:属性为[l]

  • 设备与设备文件
    与系统周边及存储等相关的一些文件,通常都集中在/dev目录下,通常又分为两种

    • 区块设备文件:第一个属性为[b]。就是一些存储数据,以提供系统随机存取的接口设备 在这里插入图片描述

    • 字符设备文件:第一个属性为[c]。一些串行端口的接口设备,如键盘、鼠标等。这些设备的特点就是一次性读取,不能截断输出。
      在这里插入图片描述

  • 数据接口文件(sockets):第一个属性为[s],通常在/run或/tmp这些目录中看到这种文件类型。这类文件通常被用在网络上的数据交换。我们可以启动一个程序来监听客户端的要求,而客户端可以通过socket来进行数据的沟通

  • 数据输送文件(FIFO, pipe):FIFO也是一种特殊的文件类型,她主要的目的是解决多个程序同时读写一个文件所造成的错误问题,FIFO也是先进先出的缩写,即管道,第一个属性为[p]

linux文件扩展名

linux文件是否能执行与扩展名无关,只要有[x]权限即可,但是可以被执行与可执行成功是不一样的,故[x]只是代表这个文件具有可执行的能力,但是能不能执行成功,就要看该文件的内容了

但是,一般扔希望可以通过扩展名来了解该文件是什么东西,故还是以适当的扩展名来表示文件是什么种类

  • 一些常用扩展名
    • .sh:脚本或批处理文件
    • .Z、.tar、.tar.gz 、 .zip、 .tgz:经过打包的压缩文件
    • .html、.php:网页相关文件

linux目录配置

Linux目录配置的依据——FHS

为了让用户可以了解到已安装软件通常放置于哪个目录下,方便企业公司管理,便诞生了FHS标准

相关文章:

linux文件权限与目录配置

用户与用户组 linux一般将文件可读写的身份分为三个类别:拥有者(owner)、所属群组(group)、其他人(other) 三种身份都有读、写、执行等权限 文件拥有者 linux是个多人多任务的系统&#xff0c…...

2023年10月wxid转微信号方法

在9月份tx做了一次调整,以前很多wxid转微信号的办法都失效了。 今天分析了一下微信。捣鼓了一下午。现在已经实现了wxid转微信号。不管对方是否在群里,是否是你的好友 都能转。一分钟出60条左右。 我们先创建一个文本文件,将要转换wxid 放进…...

【Spring Boot 源码学习】@Conditional 条件注解

Spring Boot 源码学习系列 Conditional 条件注解 引言往期内容主要内容1. 初识 Conditional2. Conditional 的衍生注解 总结 引言 前面的博文,Huazie 带大家从 Spring Boot 源码深入了解了自动配置类的读取和筛选的过程,然后又详解了OnClassCondition、…...

jupyter_快速开始

文章目录 使用 Anaconda 启动 jupyter-lab纯 python 环境使用 jupyter-notebook纯 python 环境使用 jupyter-labjupyter-lab 配置文件相关jupyter-notebook 配置文件相关jupyter-lab 与 jupyter-notebook 的关系与区别 使用 Anaconda 启动 jupyter-lab 启动一个cmd 命令行&…...

英特尔 SGX 技术概述

目录 介绍概述指示结构Memory安全区页面缓存Enclave Page Cache (EPC)安全区页面缓存映射Enclave Page Cache Map (EPCM) Memory ManagementStructures页面信息Page Information (PAGEINFO)安全信息Security Information (SECINFO)分页加密元数据Paging …...

SpringBoot核心功能与基础配置

SpringBoot简介 原先的Spring程序缺点,包括依赖设置繁琐,每项jar的引用都需要自己撰写。并且配置繁琐,配置文件中也需要自己写加载bean等。由此针对原始的Spring程序,Pivotal团队提供的全新框架——SpringBoot,其设计…...

vue3后台管理框架之Mock开发

前言 在前后端对接中,有时后端的接口数据没有 那么快能给出,因此我们可以通过mock模拟自己的请求数据,在后端接口没有给出的同时,先使用mock请求的数据完成前端相关的逻辑 官方文档:vite-plugin-mock vite 的数据模…...

03_51单片机点亮LED灯

51单片机是一种非常常见的单片机型号,广泛应用于各种嵌入式系统和电子设备中。LED灯是一种常见的输出设备,用于显示信息或指示状态。下面是关于51单片机控制LED灯的介绍: 1. 连接LED灯:将LED的正极连接到51单片机的一个I/O引脚&a…...

【前端设计模式】之备忘录模式

备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下捕获和恢复对象的内部状态。在前端开发中,备忘录模式可以用于保存和恢复用户界面的状态,以及实现撤销和重做功能。 备忘录模式特性: 封装了对象的状态:备…...

复习Day15:栈与队列part02:20. 有效的括号、1047.删除字符串中所有相邻重复项

我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Labuladong的文章看。然后刷题不用CLion了,使用leetcode自带的IDE模拟面试环境。 历史博客链接: http…...

基于Java的宠物商城管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…...

Python的GIL存在的情况下,是否还有必要添加线程锁。

GIL锁的产生: 为了保证在单线程情况下,Python的正常执行和效率,GIL锁产生了,由于只有一把锁就不会产生死锁也不用切换。 对于Python语言而言,只有CPython解释器(用C语言编写的Python解释库)存在…...

基于下垂控制的孤岛双机并联逆变器环流抑制MATLAB仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 在实际应用中逆变器都是并联运行的,但是逆变器的并联运行也存在不少问题,由于线路阻抗差异、各个逆变器输出端瞬时电压幅值不同等,都容易导致环流的出现。环流会导致逆变器损耗增加,从而影响微电网的输出效率…...

spring事务面试题

1.Spring 事务实现方式有哪些? 事务就是一系列的操作原子操作,Spring事务机制主要 包括声明式事务和编程式事务。 编程式事务:通过编程的方式管理事务,自己设置未提交模式,自己获取连接,自己预编译,自己回…...

C++标准库算法整理

目录 1、数值操作 1.1、std::accumulate 1.2、std::inner_product 1.3、std::partial_sum 1.4、std::exclusive_scan 1.5、std::inclusive_scan 1.6、std::reduce 2、相邻元素 2.1、std::adjacent_difference 2.2、std::adjacent_find 2.3、std::unique 2.4、std::u…...

【Codeforces】Codeforces Round 903 (Div. 3)【待补】

Dashboard - Codeforces Round 903 (Div. 3) - Codeforces Problem - C - Codeforces Problem - D - Codeforces...

workerman 运行时报错 Call to undefined function posix_getpid()

使用 验证php扩展是否齐全 curl -Ss https://www.workerman.net/check | php缺少posix 下载 在 Linux 系统上,可以使用包管理器来安装 php-posix 扩展,例如 Ubuntu 系统可以通过以下命令进行安装: sudo apt-get install php-posix如果你使用…...

【探讨C++中的临时对象:一时之物还是永恒之道?】

在C编程中,临时对象是一个经常引起讨论的话题。它们是什么,为什么它们存在,以及如何正确使用它们?本文将深入探讨C中的临时对象,帮助您理解它们的含义和用途。 什么是临时对象? 临时对象(Temp…...

二叉树相关算法

1、二叉树基本操作 二叉树的定义就不在这里多说了,下面这个图就是一个简单的二叉树: 二叉树的三种遍历方式: 前序遍历:头左右,也就是先头后左再右:1245367 public static void prePrint(BinaryTreeNode …...

Vue_Bug npm install报错 code:128

Bug描述: npm install报错 code:128 npm ERR! Warning: Permanently added ‘github.com’ (ED25519) to the list of known hosts. npm ERR! gitgithub.com: Permission denied (publickey). npm ERR! fatal: Could not read from remote repository. n…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...