Linux文件与目录的默认权限和隐藏权限

news2025/6/23 19:23:22

🐇明明跟你说过:个人主页

🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅

🔖行路有良友,便是天堂🔖

目录

一、Linux的起源与发展

二、文件默认权限(umask)

三、文件的隐藏属性(chattr)

四、文件类型查看(file)

五、脚本文件的查找(which)

六、文件查找(whereis)

七、atime、ctime、mtime


一、Linux的起源与发展


1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开始编写一个新的操作系统内核,这个内核最初被称为“Freax”。他的初衷只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。然而,当他将这个内核发布在Internet上并开放源代码后,全球各地的程序员开始参与到这个项目中来,共同完善这个内核。最终,这个内核被命名为Linux,这个名字是由Linus Torvalds的名字和Unix操作系统的名字组合而成的。

Linux从一开始就坚持源代码的公开和免费使用,任何人都可以对其进行修改和分发。这种开放性和自由性吸引了大量的开发者和用户,使得Linux逐渐成长并成熟起来。如今,Linux已经发展成为一个性能稳定、功能强大的多用户网络操作系统,支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。同时,Linux也有上百种不同的发行版,如基于社区开发的Debian、ArchLinux,以及基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

二、文件默认权限(umask)

在Linux系统中,默认权限(也称为umask)是用来控制新创建文件和目录的权限的。umask值会从文件和目录的初始权限中减去。

通常,umask值是由三个数字组成,分别表示文件所有者、文件所属组和其他用户的权限。每个数字都可以是0到7之间的值,对应不同的权限设置。具体如下:

  • 第一个数字表示文件所有者的权限。
  • 第二个数字表示文件所属组的权限。
  • 第三个数字表示其他用户的权限。

umask的值是由各个权限的相应位数相加得到的。例如,如果umask值为022,则表示文件所有者的权限不包括写权限,而文件所属组和其他用户的权限不包括写和执行权限。

在Linux系统中,umask值通常以八进制表示。因此,022表示文件默认权限为755(即-rwxr-xr-x)。

要查看当前系统的umask值,可以在终端中运行以下命令:

umask


要更改umask值,可以使用umask命令加上所需的umask值。例如,要将umask值设置为022,可以运行以下命令:

umask 022


这将更改当前会话中新创建文件和目录的默认权限。要永久更改umask值,可以将其添加到shell配置文件(如~/.bashrc或~/.bash_profile)中。

三、文件的隐藏属性(chattr)

文件的隐藏属性(chattr)通常与Linux系统相关,其中chattr命令用于修改文件或目录的扩展属性。这些扩展属性通常不受传统的文件权限系统(如chmod)所控制。通过chattr命令,用户可以改变文件的一些特殊属性,如不可删除、不可更改、压缩等,从而帮助用户更好地管理文件,并增强文件的安全性和稳定性。

在Linux系统中,可以使用chattr命令来设置文件的隐藏属性。这些隐藏属性可以帮助保护文件免受意外修改或删除。

以下是一些常用的chattr命令选项:

  • +i:将文件设置为不可修改。一旦设置了这个属性,文件将无法被修改、删除、重命名或链接,直到取消这个属性。
  • -i:取消文件的不可修改属性。
  • +a:将文件设置为只追加。一旦设置了这个属性,文件只能追加数据,无法修改或删除已有内容。
  • -a:取消文件的只追加属性。
  • +u:启用文件的不可恢复删除属性。一旦设置了这个属性,删除文件后将无法恢复。
  • -u:取消文件的不可恢复删除属性。

要设置文件的隐藏属性,可以使用chattr命令并指定要设置的属性。例如,要将文件设置为不可修改,可以运行以下命令:

chattr +i filename


要取消文件的不可修改属性,可以运行以下命令:

chattr -i filename


chattr命令通常需要root权限才能执行。确保在修改文件属性之前了解其影响,并小心操作。

四、文件类型查看(file)

在Linux系统中,可以使用file命令查看文件的类型。该命令会根据文件内容的特征来确定文件类型,并输出相应的描述信息。

使用file命令的基本语法如下:

file 文件路径


例如,如果要查看名为example.txt的文件类型,可以运行以下命令:

file example.txt


命令执行后,将会输出该文件的类型信息,例如文本文件、二进制文件、目录等。此外,还可能显示更详细的信息,例如文本文件的字符编码、可执行文件的体系结构等。

下面是一些示例输出:

对于文本文件:

example.txt: ASCII text


对于可执行文件:
 

example: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, not stripped


对于目录:

example_dir: directory


使用file命令可以帮助我们快速了解文件的类型,从而更好地处理和管理文件。

五、脚本文件的查找(which)

在Linux系统中,which命令用于查找给定命令的可执行文件路径。如果命令存在于系统的PATH变量指定的目录中,则which会输出该命令的完整路径。

which命令的基本语法如下:

which 命令名称


例如,要查找ls命令的位置,可以运行以下命令:

which ls


如果ls命令存在于系统PATH中,则将输出类似以下内容:

/bin/ls


如果命令不存在,则不会有任何输出。

六、文件查找(whereis)

在Linux系统中,whereis命令是一个用来查找二进制文件、源代码文件和man手册页的命令。与which命令不同的是,whereis不仅查找可执行文件,还查找与命令相关的其他文件,如源代码和手册页。

whereis命令常用于在系统中查找指定命令的位置以及其相关文件和帮助文档的位置。它会搜索特定命令的可执行文件、源代码文件以及man页面。

whereis命令的基本语法如下:

whereis 命令名称


例如,要查找ls命令的位置,可以运行以下命令:

whereis ls


如果ls命令存在于系统中,则将输出类似以下内容:

ls: /bin/ls /usr/share/man/man1/ls.1.gz


输出结果显示了ls命令的可执行文件路径和其对应的man页面路径。

七、atime、ctime、mtime

在Linux系统中,文件系统中的每个文件都有三个时间戳,它们分别是:

  • Access Time(atime):表示文件最后一次被访问或读取的时间。当执行读取文件操作时,系统会更新atime。可以使用ls -lu命令来查看文件的atime。
  • Change Time(ctime):表示文件的状态最后一次被修改的时间。当文件的所有者、权限或链接数发生变化时,系统会更新ctime。可以使用ls -lc命令来查看文件的ctime。
  • Modify Time(mtime):表示文件内容最后一次被修改的时间。当执行写入文件操作时,系统会更新mtime。可以使用ls -l命令来查看文件的mtime。

这些时间戳在文件系统中存储为UNIX时间戳格式,即自1970年1月1日午夜(UTC)以来经过的秒数。这些时间戳可以帮助用户跟踪文件的访问、修改和状态变化情况。

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!! 

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

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

相关文章

vitepress/vite vue3 怎么实现vue模版字符串实时编译

如果是vue模版字符串的话,先解析成模版对象 另一篇文章里有vue模版字符串解析成vue模版对象-CSDN博客 //vue3写法(vue2可以用new Vue.extend(vue模版对象)来实现)import { createApp, defineComponent } from vue;// 定义一个简单的Vue组件c…

【从浅学到熟知Linux】进程状态与进程优先级(含进程R/S/T/t/D/X/Z状态介绍、僵尸进程、孤儿进程、使用top及renice调整进程优先级)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程及数据库等内容。 🎯每天努力一点点,技术变化看得见 文章目录 进程状态进程状态查看R运行状态(running)S睡眠状态(sleeping&a…

软考 系统架构设计师系列知识点之大数据设计理论与实践(2)

接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(1) 所属章节: 第19章. 大数据架构设计理论与实践 第1节 传统数据处理系统存在的问题 最严重的问题是系统并没有对认为错误进行工程设计,仅靠备份是…

[C++]让C++的opencv库支持写出h264格式视频

当我们写下面测试代码时候&#xff1a; #include <opencv2/opencv.hpp>int main() {cv::VideoCapture cap("E:\\car.mp4"); // 打开默认摄像头if (!cap.isOpened()) {std::cout << "读取完毕!" << std::endl;return -1;}double fps ca…

HarmonyOS时区和语言设置-使用相关api实现系统语言和地区设置

介绍 本示例展示了i18n&#xff0c;intl&#xff0c;resourceManager在eTS中的使用&#xff0c;使用相关api实现系统语言和地区设置、时间和时区设置&#xff0c;展示了区域格式化示例。 效果预览 使用说明 1.启动应用&#xff0c;进入应用&#xff0c;首页分为三个按钮&…

Linux第87步_阻塞IO实验

阻塞IO是“应用程序”对“驱动设备”进行操作&#xff0c;若不能获取到设备资源&#xff0c;则阻塞IO应用程序的线程会被“挂起”&#xff0c;直到获取到设备资源为止。 “挂起”就是让线程进入休眠&#xff0c;将CPU的资源让出来。线程进入休眠后&#xff0c;当设备文件可以操…

nginx配置证书和私钥进行SSL通信验证

文章目录 一、背景1.1 秘钥和证书是两个东西吗&#xff1f;1.2 介绍下nginx配置文件中参数ssl_certificate和ssl_certificate_key1.3介绍下nginx支持的证书类型1.4 目前nginx支持哪种证书格式&#xff1f;1.5 nginx修改配置文件目前方式也会有所不同1.6 介绍下不通格式的证书哪…

Vue2.x实现商城购物车

1.实现购物车页面 在页面中显示购物车中的商品信息&#xff0c;并能进行数量增减及商品删除操作&#xff0c;购物车中金额也随商品数量的变化而变化 2.创建cart.html页面 创建cart.html页面&#xff0c;在其中创建Vue实例&#xff0c;实例中首先准备一些商品信息以供显示&a…

从TensorFlow到PyTorch:我为何选择后者开启深度学习之旅

在深度学习的浪潮中&#xff0c;TensorFlow和PyTorch无疑是两大最受欢迎的框架。它们各自拥有庞大的社区支持、丰富的文档资源和强大的功能&#xff0c;使得开发者们可以根据自己的需求选择合适的工具。然而&#xff0c;在我深入研究和实践之后&#xff0c;我最终选择了PyTorch…

Day20_学点儿JavaEE_基于Session的登录、数据库null值正确显示

1 登录 使用Session技术完成用户登录的功能&#xff1a; 登录功能会使用到Session&#xff0c;把用户登录的用户名和密码保存到Session&#xff0c;因为Session是属于每个用户独有的&#xff0c;就可以记录每个用户单独的登录信息。 当然&#xff0c;这仅仅是完成了一个简单的…

NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]

NL2SQL基础系列(1)&#xff1a;业界顶尖排行榜、权威测评数据集及LLM大模型&#xff08;Spider vs BIRD&#xff09;全面对比优劣分析[Text2SQL、Text2DSL] Text-to-SQL&#xff08;或者Text2SQL&#xff09;&#xff0c;顾名思义就是把文本转化为SQL语言&#xff0c;更学术一…

HTML和markdown

总体情况 <p>在html的用处 在vscode中使用markdown [Markdown] 使用vscode开始Markdown写作之旅 - 知乎

开源项目one-api的k8s容器化部署(上)-- 制作镜像及部署准备

一、背景 最近需要对开源项目one-api进行k8s容器化部署&#xff0c;主要分以下几个步骤&#xff1a; 制作docker镜像申请mysql和redis数据库docker-compose部署方式k8s部署方式 整个的篇幅比较长&#xff0c;将会分成上下两篇来阐述。 二、制作docker镜像 开源项目one-api…

计算机毕业设计选题之基于SSM的旅游管理系统【源码+PPT+文档+包运行成功+部署讲解】

&#x1f493;项目咨询获取源码联系v&#x1f493;xiaowan1860&#x1f493; &#x1f6a9;如何选题&#xff1f;&#x1f351; 对于项目设计中如何选题、让题目的难度在可控范围&#xff0c;以及如何在选题过程以及整个毕设过程中如何与老师沟通&#xff0c;有疑问不清晰的可…

迭代器模式【行为模式C++】

1.简介 迭代器模式是一种行为设计模式&#xff0c; 让你能在不暴露集合&#xff08;聚合对象&#xff09;底层表现形式 &#xff08;列表、 栈和树等&#xff09; 的情况下遍历集合&#xff08;聚合对象&#xff09;中所有的元素。 迭代器的意义就是将这个行为抽离封装起来&a…

非关系型数据库(缓存数据库)redis的集群

目录 一.群集模式——Cluster 1.原理 2.作用 3.特点 4.工作机制 哈希槽 哈希槽的分配 哈希槽可按照集群主机数平均分配&#xff08;默认分配&#xff09; 根据主机的性能以及功能自定义分配 redis集群的分片 分片 如何找到给定key的分片 优势 二. 搭建Redis群集…

Java快速入门系列-7(测试与调试)

第七章:测试与调试 第7章:测试与调试7.1 单元测试(JUnit)7.1.1 为什么要进行单元测试7.1.2 JUnit基础7.1.3 断言7.1.4 测试套件7.2 集成测试与系统测试7.2.1 集成测试7.2.2 系统测试7.3 调试技巧与工具7.3.1 断点7.3.2 单步执行7.3.3 变量检查7.3.4 条件断点7.3.5 日志记录…

Java快速入门系列-6(数据库编程与JDBC)

第六章:数据库编程与JDBC 6.1 SQL基础6.1.1 SQL基本结构与命令6.1.2 SQL高级查询6.1.3 SQL子查询与联接6.2 JDBC原理与使用6.2.1 JDBC驱动程序与URL6.2.2 Statement、PreparedStatement与CallableStatement6.2.3 数据库事务处理6.3 数据库连接池6.4 事务管理6.1 SQL基础 SQL(…

【Linux的进程篇章 - 环境变量的理解】

Linux学习笔记---007 Linux之进程优先级、环境变量以及地址空间的理解1、进程优先级1.1、什么是优先级&#xff1f;1.2、为什么要有优先级&#xff1f;1.3、Linux的优先级特点以及查看方式1.4、进程的几个特性 2、环境变量2.1、概念2.2、命令行参数2.2.1、什么是命令行参数&…

OVITO-2.9版本

关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 更 多 \color{blue}{多} 多 精 \color{orange}{精} 精 彩 \color{green}{彩} 彩&#xff01; 主要专栏内容包括&#xff1a; †《LAMMPS小技巧》&#xff1a; ‾ \textbf…