Linux权限(二)

Linux的文件类型

文件类型

  • 普通文件 (-):常规文件,可能是文本、二进制数据等。
  • 目录 (d):文件夹,包含其他文件或目录。
  • 符号链接 (l):指向另一个文件或目录的快捷方式。
  • 块设备文件 (b):用于存储数据的块设备,如硬盘。
  • 字符设备文件 (c):用于按字符流操作的设备,如键盘、终端。
  • 管道文件 (p):用于进程间通信的命名管道。
  • 套接字 (s):用于网络通信的文件。

Linux的默认权限

在 Linux 系统中,文件和目录的默认权限取决于 umask(用户文件创建模式掩码)的值。默认情况下,umask 设置会影响新创建的文件和目录的权限。

文件和目录的默认权限

  1. 文件

    • 通常情况下,新创建的文件默认权限为 666(即:rw-rw-rw-)。
    • 这是因为一般情况下,普通文件不应该具有执行权限。
  2. 目录

    • 通常情况下,新创建的目录默认权限为 777(即:rwxrwxrwx)。
    • 这是因为用户通常希望具有完全的权限来访问目录,包括执行权限(进入目录)。

使用 umask 调整默认权限

umask 是一个三位或四位八进制数,它指定了新文件或目录应当剔除的权限位。通过设置 umask,可以控制新文件或目录的默认权限。

例如:

  • 默认 umask 值为 022

    • 新文件的默认权限将是 644666 - 022),即:rw-r--r--
    • 新目录的默认权限将是 755777 - 022),即:rwxr-xr-x
  • 默认 umask 值为 027

    • 新文件的默认权限将是 640666 - 027),即:rw-r-----
    • 新目录的 default permissions will be 750777 - 027),即:rwxr-x---

检查和设置 umask

可以使用 umask 命令来查看当前 umask 的值

umask

可以使用 umask 命令来设置新的 umask

umask 027

Linux的目录权限

  1. 读权限 (r)

    • 目录的读权限允许用户列出目录中的文件和子目录。
    • 对应的八进制数值为 4
  2. 写权限 (w)

    • 目录的写权限允许用户在目录中创建、删除和重命名文件或子目录。
    • 对应的八进制数值为 2
  3. 执行权限 (x)

    • 目录的执行权限允许用户进入目录(即改变当前工作目录到此目录)。
    • 对应的八进制数值为 1

删除文件或目录的权限与文件本身的权限无关,而是与包含该文件或目录的父目录的权限相关。这是因为删除操作实际上是对父目录结构的修改。

删除文件的权限

  1. 目录的写权限 (w)

    • 要删除一个文件,用户需要对其所在的目录拥有写权限。
    • 写权限允许用户修改目录内容,例如添加或删除文件。
  2. 目录的执行权限 (x)

    • 要删除一个文件,用户还需要对其所在的目录拥有执行权限。
    • 执行权限允许用户进入该目录。

所以,要删除一个文件,用户需要对文件所在目录同时拥有写权限和执行权限。文件本身的权限则没有直接影响。

粘滞位

在 Linux 文件系统中,粘滞位(Sticky Bit)是一种特殊的权限位,用于目录上的时候,可以限制非目录拥有者删除目录中的文件或子目录。粘滞位在共享目录中非常有用,例如 /tmp 目录。

粘滞位的作用

  • 当目录设置了粘滞位时,只有以下用户可以删除或重命名该目录中的文件或子目录:

    1. 文件或子目录的所有者。
    2. 目录的所有者。
    3. 超级用户(root)。
  • 对于普通用户来说,如果没有设置粘滞位,任何拥有写权限的用户都可以删除或重命名目录中的文件或子目录,即使他们不是文件或子目录的所有者。

设置粘滞位

粘滞位可以通过以下方式设置:

  1. 八进制表示

    在权限设置的最前面加 1。例如:
    chmod 1777 directory_name
    

    这会设置 directory_name 目录的权限为 rwxrwxrwt,其中最后一个 t 表示粘滞位。

  2. 符号表示

    使用符号 +t。例如:
    chmod +t directory_name
    

    这会添加粘滞位到 directory_name

检查粘滞位

粘滞位在目录的权限表示中显示为 tT

t:表示其他用户对目录拥有执行权限。例如 drwxrwxrwt

T:表示其他用户对目录没有执行权限。例如 drwxrwxrwT

示例

以下是一些实际的例子:

共享目录 /tmp

典型的粘滞位应用是 /tmp 目录,通常权限为 drwxrwxrwt

这确保了任何用户都可以在 /tmp 中创建文件,但只有文件的所有者、目录的所有者或超级用户才能删除或重命名这些文件。

自定义共享目录

假设你有一个共享目录 shared,你希望用户能够在该目录中创建文件,但不允许删除其他人的文件:

mkdir shared
chmod 1777 shared

这将设置 shared 目录的权限为 drwxrwxrwt

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最后一块石头的重量 II ,目标和,一和0

最后一块石头的重量 II(0-1背包问题 将石头尽可能分为两堆重量一样的,进行相撞则为0 class Solution {public int lastStoneWeightII(int[] stones) {int sum0;for(int x:stones){sumx;}int targetsum/2;int[] dpnew int[target1];//dp[j]表示最大石堆的…

基础算法,贪心算法,贪心策略,OJ练习

文章目录 一、概念二、OJ练习2.1 区间选点2.2 区间合并2.3 区间2.4 合并果子2.5 排队接水2.6 货仓选址2.7 防晒2.8 畜栏预定2.9 雷达设备2.10 国王游戏2.11 耍杂技的牛2.12 给树染色2.13 任务2.14 能量石 三、总结 一、概念 贪心是一种在每次决策时采取当前意义下最优策略的算…

怎么在家访问公司内网?

在当前的疫情情况下,越来越多的公司开始允许员工在家办公,这就需要解决一个问题:如何在家访问公司的内网资源呢?今天我将介绍一种解决方案——使用【天联】组网,它具有许多优势。 【天联】组网的优势 无网络限制&#…

视频断点上传

什么是断点续传 通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成&#xf…

泰迪智能科技中职大数据实验室建设(职业院校大数据实验室建设指南)

职校大数据实验室是职校校园文化建设的重要部分,大数据实训室的建设方案应涵盖多个方面,包括硬件设施的配备、软件环境的搭建、课程资源的开发、师资力量的培养以及实践教学体系的完善等。 打造特色,对接生产 社会经济与产业的…

KT148A语音芯片串口版本播放音乐的时候,直接导致单片机工作异常

一、问题描述 在使用你们KT148A串口版本播放音乐的时候,直接导致单片机工作异常,测了一下供电发现每次播放音乐的时候,供电会有很大波动。看了一下你们的手册,说是带载能力不够,但是我把供电接出来,接到你…

【数据结构】二叉树知识点详解

树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、…

STM32-DAC

DAC 前言一、理论介绍二、DAC代码三、实验结果总结 前言 前言写个参考吧 STM32 DAC串口 一、理论介绍 DAC是数字模拟转换器(Digital to Analog Converter)的缩写,它是一种将数字信号转换为模拟信号的设备。 RC有2个通道。 DAC的初始化 #…

Vue3专栏项目 -- 一、第一个页面(上)

一、ColumnList 组件(专栏列表组件)编码: 该组件要接收一个数组,数组中是一个个专栏数据,数据中包括id、title、avator、description。所以我们定义一个泛型,泛型为id为number类型title为string类型如下这…

【从零开始学架构 架构基础】架构设计的本质、历史背景和目的

本文是《从零开始学架构》的第一篇学习笔记,主要理解架构的设计的本质定义、历史背景以及目的。 架构设计的本质 分别从三组概念的区别来理解架构设计。 系统与子系统 什么是系统,系统泛指由一群有关联的个体组成,根据某种规则运作&#…

VS Code安装通义灵码插件

搜索通义灵码插件 当编写完部分代码后,会出现通义灵码的图标,点击该图标,可以选择补全代码。 之后需要登录阿里云账号 返回vscode 在左下角输入框输入提出的问题“合并两个数组”,回车显示问题的答案。

简单了解泛型

基本数据类型和对应的包装类 在Java中, 基本数据类型不是继承自Object, 为了在泛型代码中可以支持基本类型, Java给每个基本类型都对应了一个包装类型. 简单来说就是让基本数据类型也能面向对象.基本数据类型可以使用很多方法, 这就必须让它变成类. 基本数据类型对定的包装类…

免费思维13招之一:体验型思维

思维01:体验型思维 第一大战略:体验型思维。 体验型思维是免费思维中最简单的思维,我们先从最简单的讲起,由简入繁,简单的我们少讲,复杂的我们多讲。 那么,什么是体验型思维呢? 很简单,就是先让客户进行体验,再进行成交的方式。这一种思维,具体的可以分为两种:…

yolo world 瑞芯微芯片rknn部署、地平线芯片Horizon部署、TensorRT部署

特别说明:参考官方开源的 yoloworld 代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。 模型和完整仿真测试代码,放在github上参考链接 模型和代码。 yoloworld出来的有一段时间了,还没有盘到板端上玩一玩…

IJCAI 2024:吉林大学、中国科学院计算技术研究所和自动化研究所等揭示数据增强在开放场景下的“两面性”

吉林大学人工智能学院研究员高一星、中国科学院计算技术研究所副研究员唐帆、中国科学院自动化研究所研究员董未名等在人工智能领域的CCF-A类顶级国际会议IJCAI上发表的工作,揭示并分析基于样本混合的数据增强方法在开放场景下存在的问题,提出了基于非对…

《安富莱嵌入式周报》第336期:开源计算器,交流欧姆表,高性能开源BLDC控制器,Matlab2024a,操作系统漏洞排名,微软开源MS-DOS V4.0

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 本周更新一期视频教程: BSP视频教程第30期:UDS ISO14229统一诊断服务CAN总线专题,常…

C++:多态-虚函数

C 中的多态性是面向对象编程中的一个重要概念,它允许在运行时选择不同的函数实现,以适应不同类型的对象。 多态的种类 编译时多态性(Compile-time Polymorphism):也称为静态多态性或早期绑定,指在编译时确…

java.lang.Exception: Test class should have exactly one public zero-

1.原因 Test方法所在类中,不能存在有参数构造函数,无参构造可以存在。JUnit在运行测试之前,会对测试类做一些初始化和验证工作。对于普通的非参数化测试,JUnit期望测试类有一个无参的公共构造函数,这样它才能够实例化测试类并执行其中的测试方…

K8S快速入门

K8S快速入门 在学习k8s的过程,虽然官网给出的示例教程很简单,但是由于网络和环境的差异,导致实际操作的时候踩了很多坑,下面记录一下自己的操作步骤,方便需要的人参考,也方便以后的自己。 参考官网的资料…

uni-app+vue3 +uni.connectSocket 使用websocket

前言 最近在uni-appvue3websocket实现聊天功能,在使用websocket还是遇到很多问题 这次因为是app手机应用,就没有使用websocket对象,使用的是uni-app的uni.connectSocket 为了方便测试这次用的是node.js一个简单的dom,来联调模拟…
最新文章