Linux学习[6]文件权限深入1

news2024/10/4 23:26:06

文章目录

  • 前言
  • 1. 文件的各个字段含义
  • 2. 修改文件权限
  • 3. 有点意思的东西
  • 总结

前言

前六个博客是基于树莓派的linux教程书籍写的,因为之前的书籍是以树莓派为基准,所以在linux上没有很详细。这个博客开始记录的是我看书过程中遇到的有意思的,没见过或者说不会的内容。

因为是个人笔记类型相关,所以如果这个专栏的博客从头开始看可能会觉得有点凌乱,但怎么说呢,总归是我的一个学习过程。
在Linux学习[1]中我只是基于之前用到的例子进行了简单阐述,这篇博客就更加深入透彻一些。


1. 文件的各个字段含义

我们通常在linux的中断里面通过ls命令来查看当前目录下的文件。
在这里插入图片描述

但如果要看详细内容呢,比如文件的拥有者是谁,归属于哪个组等信息,就需要用ls -al
在这里插入图片描述

从上面的效果图中我们截取片段进行详解:

在这里插入图片描述
我们以第一句为例进行阐述。

文件类型拥有者权限同组权限其他用户权限文件硬链接数或目录子目录数拥有者所属组别文件文件大小修改时间文件名/目录名称
-rwxr-xr-x17ubuntuubuntu4096Apr 13 04:07.

这里文件类型-表示是个文件,d表示是个目录,在linux中一切皆文件,不要纠结目录怎么是文件类型。
若是l则表示为链接文件(link file);
若是b则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
若是c则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。

每一个类型有三个权限设置,即拥有者,同组别,其他用户,对某个文件都是有三个权限的设置。
rwx表示读写执行三种权限,如果某一个用户没有写权限则为r-xw-覆盖。

文件硬链接参考:Linux学习[2]

文件大小是以字节为单位的,这里4096即为4096个字节长度。
后面都应该可以理解,看表格即可。比较特殊的是:如果文件名之前多一个.或者就是.,则代表这个文件为“隐藏文件”


2. 修改文件权限

其实之前这个笔记专栏的第一节也写了一些修改权限的内容,但是不全,这里做个补充。

修改指令一般分为三种,为了便于理解,我直接列表。

指令指令含义指令用法用例说明
chgrp改变文件所属群组chgrp root test.sh改变test.sh文件的所属群组为root
chown改变文件拥有者chown pi test.sh改变test.sh文件的拥有者为pi
chmod改变文件的权限chmod 777 test改变test的拥有者同组以及其他用户权限为读写执行

chown指令的使用中,如果修改的时候要连同目录下的次目录或者文件同时更改拥有者,那就
chown [-R] 帐号名称 文件或目录
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有文件都变更

关于chmod的777是啥意思,可以参考Linux学习[1]—用户权限

除了上面的用法,其实还可以使用下面表格的用法,这个用法更为细致。

指令用户权限操作权限类型文件或目录
chmodu(user)+(增加)r(读)test
chmodg(group)-(除去)r(写)test
chmodo(others)=(设置)x(执行)test
chmoda(all)+/-/=rwxtest

举两个例子:
chmod u=rwx,go=rx test
改变test的拥有者权限为rwx,组内和其他用户为rx。
chmod +x test.sh
给test.sh脚本添加执行权限。


3. 有点意思的东西

既然在linux中什么都是文件,那么文件有可执行权限没问题。比如我们一个脚本文件,那可执行就是可以运行呗。
那如果文件类型是目录呢?那可执行对于目录来讲说明啥?
我们以下面这条信息为例进行阐述:

这里ubuntu用户对目录名为Desktop的有读写执行权限。
读权限,即知道这个目录里有啥。
写权限,即我可以对目录里的文件删除等操作。
执行权限,有点意思。我们用终端切换目录的时候不是用cd命令吗,哎~,如果你没有这个目录的执行权限,抱歉,无法cd进去。就这么一回事。如果你在某目录下不具有x的权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r或w的权限。

这里我看的书上有个有意思的例子,后面再权限赋予的时候需要注意这个问题。

假设有个帐号名称为dmtsai,他的主文件夹在/home/dmtsai/,dmtsai对此目录具有[rwx]的权限。 若在此目录下有个名为the_root.data的文件,该文件的权限如下:
-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data
请问dmtsai对此文件的权限为何?可否删除此文件?
答:
如上所示,由于dmtsai对此文件来说是“others”的身份,因此这个文件他无法读、无法编辑也无法执行, 也就是说,他无法变动这个文件的内容就是了。

但是由于这个文件在他的主文件夹下, 他在此目录下具有rwx的完整权限,因此对于the_root.data这个“文件名”来说,他是能够“删除”的! 结论就是,dmtsai这个用户能够删除the_root.data这个文件!


总结

这篇博客是对这个系列第一篇的补充与拓展,也是另一本书学习过程中的一些记录。
对linux文件的权限问题更加深入。

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

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

相关文章

提取文本关键词?很 easy 啊,用 Python 三行搞定

从大量文本中提取有用的关键信息是数据分析的一个重要环节。 Python 作为一门广泛应用于数据分析领域的编程语言,有着强大的文本处理库。 整理了几个用于文本关键词提取的优秀工具,一起学习下。 1、jieba库 jieba 是一个中文分词库,可以将…

SpringMVC学习1

一、SpringMVC的概述 SpringMVC是由Spring官方提供的基于MVC设计理念的Web框架MVC是模型、视图、控制器的简写,是软件的一种设计规范MVC将业务逻辑、数据,显示分离的方式来组织代码MVC降低了视图和业务逻辑之间的双向耦合MVC是一种架构模式模型&#xff…

SpringBoot整合接口管理工具Swagger

Swagger Swagger简介 Springboot整合swagger Swagger 常用注解 一、Swagger简介 ​ Swagger 是一系列 RESTful API 的工具,通过 Swagger 可以获得项目的⼀种交互式文档,客户端 SDK 的自动生成等功能。 ​ Swagger 的目标是为 REST APIs 定义一个标…

初识CSRF

概述跨站请求伪造(Cross-site request forgery)通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。CSRF并不是攻击网站服务器,而是冒充用户在站内的正常操作在CSRF的攻击场景中攻…

会话技术.

Cookie 在服务器中写一个Cookie键值对,然后把它扔进响应值中,于是在浏览器访问当前web项目时会得到响应值,并且把这个响应值中的Cookie数据存在浏览器中,下次,在服务器中就可以先获得刚才的Cookie数据,然后…

第六章_Redis管道

是什么 解决思路(引出管道这个概念) 管道(pipeline)可以一次性发送多条命令给服务端,服务端依次处理完完毕后,通过一条响应一次性将结果返回,通过减少客户端与redis的通信次数来实现降低往返延时时间。pipeline实现的…

【从零开始学Skynet】工具篇(二):虚拟机文件的复制粘贴

大家在Linux系统下开发的时候肯定会遇到虚拟机与主机间无法复制粘贴的问题,现在我们就来解决这样的问题,方便我们的开发。 1、打开设置 我们可以系统界面的菜单栏点击“控制”,然后打开“设置”; 也可以在VirtualBox界面打开“设…

建议企业采购团队学习的采购策略

随着全球市场的不断发展和竞争的日益激烈,企业采购团队必须制定出更加科学、合理的采购策略来适应市场的各种变化。合理的采购策略不仅可以保证企业的采购成本最优化,还可以提高采购效率和质量。因此,建议企业采购团队学会以下几种采购策略&a…

一文搞懂Plant Simulation中的Rotation设置

在处理3D动画或者展示时,常常需要在Plant Simulation调整数模的姿态,静态设置或动态设置Rotation是一个很重要的手段。 编辑3D属性,在Transformation选项卡中,我们可以看到Rotation的设置参数,如上图所示,只有一个角度和3个轴参数。如果对计算机图形学不了解的同学,估计…

【外设零基础通用教程】GPIO 下

【外设零基础通用教程】GPIO 下使用方法GPIO 值输入读取值输出设置值GPIO输入输出应用GPIO输入应用GPIO输出应用文档使用理论补充输出方式推挽输出开漏输出上篇连接:【外设零基础通用教程】GPIO 上,主要是在做视频的时候,发现上篇理论很多&am…

[composer-unused]扫描代码找出没有使用的依赖

composer-unused是一个使用PHP开发的命令行工具,就像composer一样,只不过它的作用是扫描出代码中,加载了依赖但没有实际使用的库。 使用分析 像我之前做过的一个项目,扫描结果如下图: 其中可以发现在composer.json中…

【网络】网络层协议——IP

目录网络层IP协议IP基础知识IP地址IP报头格式网段划分CIDR特殊的IP地址IP地址的数量限制私有IP地址和公有IP地址路由IP总结网络层 在复杂的网络环境中确定一个合法的路径。 IP协议 IP协议作为整个TCP/IP中至关重要的协议,主要负责将数据包发送给最终的目标计算机…

对USB协议的通俗理解

目录简介背景特点版本USB数据流模型总线拓扑结构USB通信流端点管道电气标准USB接口类型USB Type-AUSB Type-BUSB Type-CPIN脚定义4PIN9PIN5PIN24PIN16PIN6PINUSB数据传输相关概念通讯方式通讯方向同步方式帧和微帧USB数据格式域包令牌包数据包握手包特殊包事务IN事务OUT事务SET…

BM37-二叉搜索树的最近公共祖先

题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q,最近公共祖先LCA(T,p,q)表示一个节点x,满足x是p和q的祖先且x的深度尽可能大。在这里,一个节点也可以是它自己…

CSC国家公派项目网上申报今天启动/附应提交材料及说明

今天(4月10日)是2023年国家公派高级研究学者、访问学者、博士后项目开始申报的日期,知识人网小编提醒申请者关注,同时附上该项目的应提交材料及说明。 根据国家留学基金委(CSC)通知精神,2023年国…

typora和C51开发环境

经过查阅,可以用wiz和typora联动的方式记录笔记,这样一个文件夹里既可以用typora也可以用内置编辑器(一种富文本编辑器),注意同一个文件不能用不同的编辑器,否则会错乱。以下,我列举了用typora的…

extern 关键字

参考https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定…

k8s调度器扩展(Scheduler Framework)、源码编译及部署

因为研究的需要,需要对K8S的调度器进行扩展,本文主要讲解了k8s调度器扩展的一个流程,其中包含源码修改、源码编译、调度器配置以及部署和本人所踩的一些坑,使用的k8s的版本为1.23.1 1.下载源码,在此选择v1.23.1版本&a…

大数据之Spark部署模式

文章目录前言一、Spark的部署模式(一)Client模式1. Standalone集群下的Client模式2. Spark On Yarn集群下的Client模式(二)Cluster模式1. Standalone集群下的Cluster模式2. Spark On Yarn集群下的Cluster模式总结前言 #博学谷IT学…

c++头文件、namespace 的理解、#include、 编译模式

namespace C 命名空间 | 菜鸟教程 C命名空间(名字空间)详解 作用:多写在头文件中,用于多个头文件的变量函数出现重命名。 namespace中可以定义变量,函数,类等等,也可以写声明,来…