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

Linux之权限(内容详细,细节满满)

个人主页:点我进入主页

专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶

C语言刷题       数据结构初阶    Linux

欢迎大家点赞,评论,收藏。

一起努力

目录

一.前言

二.权限修改的两种方法

2.1利用字符修改

2.1.1Linux中文件的类型

2.1.2拥有的权限以及对文件属性的解读

2.1.3权限的修改

2.1.3.1root用户和其他用户的区别

2.2 使用八进制进行修改

2.3 umask

 三.修改拥有者和所属组

四.粘滞位 


一.前言

        在Linux中用户分为超级用户和普通用户,今天我们主要讲解一些修改权限,有无权限的差别,我们主要通过一些的实验来展示一下我们的操作,大家可以跟着一起来感受一下权限的操作。我们知道文件是文件内容加文件属性,文件属性应该怎么去查看呢?如何去增加和减少权限,如何实现共享文件,以及共享文件中的粘滞位有什么作用,应如何去实现?这些问题在这篇博客中我会使用三个用户为大家一一解答,大家要看仔细呦;

二.权限修改的两种方法

2.1利用字符修改

        我们使用ll可以查看文件的属性输入ll可以看到

其中4096是文件占用4096个字节,第一个root表示这个文件的拥有者,第二个root表示文件的所属组,Jan 16 17:22表示文件最近的修改日期,y表示文件的文件名,对于drwxr-xr-x,我们首先需要知道d的含义,

2.1.1Linux中文件的类型

        在Linux中d表示目录文件,在我们经常使用的类型中包括说到文件类型,我们知道windows中我们文件的类型通过后缀名来区分的,例如我们的.exe文件,.c文件等但是在Linux中我们的文件类型是否也是通过文件的后缀名来区分呢?事实上我们是通过文件属性前面的一个字符来区分的例如我们上面的y文件中的drwxr-xr-x中的第一个字符d,这就是表示目录文件,还有那些文件类型呢?-类型的文件,这是普通文件,d类型的文件是目录文件,还包括l:软链接(类似Windows的快捷方式)b:块设备文件(例如硬盘、光驱等)p:管道文件c:字符设备文件(例如屏幕等串口设备)s:套接口文件,在前面连个文件类型中我们是经常使用的。我们应该如何去验证Linux中的文件后缀不是文件的类型呢?我们可以通过写一个.c文件利用gcc进行编译产生a.out文件,我们对它进行修改文件名看是否可以执行呢?

我们先执行一遍

我们修改a.out的名字为a.txt然后执行文件看是否可行

我们看到程序依旧执行了,那我们就可以得到在Linux中文件的后缀不影响文件的类型。又有人有一些疑问那我将test.c的后缀改成test.txt再使用gcc对其进行编译为什么不行呢?

我们可以看到出错了?不是说Linux文件的后缀不是文件的类型吗?这句话确实没有错,但是gcc的要求不是这样的,我们应该知道Linux≠gcc,两个的要求不同,我们应该理性的去看待他们两个。

我们看图现在我们知道了drwxr-xr-x中d表示文件的类型。

2.1.2拥有的权限以及对文件属性的解读

        那么rwxr-xr-x表示什么呢?首先我们需要知道Linux中我们有三种角色拥有者,所属组,其他,rwxr-xr-x就是所这三种角色的权限是什么样子的,这时候我们需要知道rwx表示的是什么意思

r:表示文件具有可读属性(也就是说我们可以用ls指令查看文件的属性和文件的内容);

w:表示文件具有可写属性(也就是说我们可以增加删除修改文件的内容或者目录里面的内容);

x:表示文件具有可执行属性(也就是说我们是否能执行某个文件例如cd文件这就需要我们具有x属性)。

如果具有这些属性就会显示相应的字符,如果没有就会显示-符号,并且顺序一定,权限表示的讲人分别是拥有者,所属组,其他,例如rwxr-xr-x表示拥有者具有rwx权限,所属组有rx权限,其他人有rx权限。我们对

进行完整的解读就是文件名为y的文件是目录文件,拥有者root具有rwx权限,所属组root具有rx权限,其他人具有rx权限,占用4096个字节,最近修改时间为Jan 16 17.22。 

2.1.3权限的修改

        文件权限的修改需要我们的chmod指令,那chmod指令应该如何使用呢?首先我们需要知道我们修改谁的权限:

u:拥有者

g:所属组

o:其他人

a:所有人

我们知道对谁进行修改权限我们还需要知道修改哪些权限,我们知道权限有rwx三种,我们还需要知道是增加权限还是减少权限,这需要我们的符号+-,其中+表示增加权限,-表示减少权限。我们还需要我们的目标文件,我们的格式为文chmod 对象+-权限 目标件,这样就可以进行权限的修改,首先我们在root用户中对a文件进行修改,

例如我们想要让其他人具有rwx权限我们输入chmod o+rwx test1.txt指令就可以了

我们的普通用户是其他人,,我们进行实验看看有没有rwx属性,我们在普通用户中输入ls -ld a指令

所以具有r权限,我们输入指令touch a/test.txt指令

我们可以看到可以增加删除文件所以具有w属性,我们cd a可以判段有没有x属性

我们删除o的权限我们再看看能不能实现

我们输入ll a可以看到

我们输入mkdir a/test.txt

我们输入cd a

我们可以看到我们都没有权限

如果我们想修改多个人的权限,我们可以输入chmod u+rwx,g+rwx,o+rwx a可以实现所有人有全部权限。

2.1.3.1root用户和其他用户的区别

        我们知道普通用户想要对文件进行修改访问,执行需要权限吗,但是对于root我们需要知道,这个不需要权限也能访问,root就像一个老流氓一样可以在任何地方进行访问,我们可以看看以下示例:我们输入指令chomd a-rwx a我们可以看到我们取消了所有人的权限,我们试试能不能进行访问

我们在它里面创建一个test.txt,然后进入里面看能不能进行访问和执行,

 

我们可以看到我们进入了目录a里面说明有x权限,增添了文本test.txt说明有w权限,执行了ll说明具有r权限,这就是我们的root用户。

2.2 使用八进制进行修改

        我们可以将权限的选项看成1和0,有这个权限就是1,没有这个权限就是0,例如我们具有的权限是rwx对应的二进制就是111,对应的八进制就是7,我们想将一个人的权限设置成rwx,我们就可以输入指令 chmod 777 a

我们想设置成000就可以输入指令chmod 000 a

2.3 umask

        在正常情况下我们的目录文件应该全是777,普通文件应该全是666,但是目录文件却是775,普通文件是664,为什么会这样呢?这就是文件掩码,我们输入umask就可以看到我们的文件掩码的值,那值是如何计算的呢?就是777&(~umask),先对umask的二进制未进行取反,然后按位与值,我们以777为例,对应的二进制为111111111,umsk为002,对应000000010,进行取反为111111101,进行按位与为111111101,也就是775.

 三.修改拥有者和所属组

        我们知道我们权限是谁具有什么权限,我们在前面学过了如何去修改权限,在这里我们学习如何去修改拥有权限的人,我们先在root用户下进行

我们想将a.txt的拥有者修改为yang 我们输入指令chown yang a.txt

我们可以看到我们的拥有者是yang,我们想修改所属组我们需要输入指令chgrp yang a.txt可以看到

由于是root账户,可以对任意信息进行修改,我们进入普通用户看看还行不行

我们用text.tga文件进行演示

我们可以看到

 我们不能进行访问,我们知道拥有者和所属组是root我们认为由于不是我们,所以不能进行修改,那我们对a进行修改,看是否可行

我们看到不能进行修改,所以在这里有显示了root和普通用户的区别。

当然我们也可以在前面加上sudo 进行操作。

四.粘滞位 

        在多人进行工作时,我们一些人需要在一个文件中进行工作,为了防止别人进行修改,我们就需要粘滞位,我们输入sudo chmod +t 所属的目录 ,

我们用一个普通用户让他进行删除a.txt

如果想要删除需要是root账号,或者拥有者和所属组才能进行删除。

相关文章:

Linux之权限(内容详细,细节满满)

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 Linux 欢迎大家点赞,评论,收藏。 一起努力 目录 一.前言 二.权限修改的两种方法 …...

了解云工作负载保护:技术和最佳实践

云工作负载是指云环境中的应用程序或存储元素,无论是公共云、私有云还是混合云。每个云工作负载都使用云的资源,包括计算、网络和存储。 云工作负载可以多种多样,例如运行应用程序、数据库或托管网站。它们可以是静态的或动态的,…...

【Godot4自学手册】第三节设置主人公的动画

继续,今天是第三节,我们主要实现主人公的动画效果,共有两种方法实现动画效果 一、通过AnimationPlayer节点实现动画效果 我们首先在player场景下,player节点下添加AnimationPlayer节点,添加方法是,在play…...

excel学习1

直接ctrl cctrl v会报错位移选择粘贴时用123那个数字粘贴而不是ctrl V 只要结果不要公式 上面复制的为数值这里是复制的公式他们两个不一样 这个方法太麻烦了直接用格式刷,选择一个区域一个单元格,不要选择多个一刷就出来了 第一个计算后向下拖就行了&…...

裁员致谷歌中国籍程序员身亡,技术变革下裁员对程序员的影响有多大

裁员,这是一个令无数人心悸的词汇。在瞬息万变的科技时代,裁员仿佛成了不少公司应对困境的“救命稻草”。然而,在这背后,每一名员工,每一个程序员,他们所承担的代价,又有多少人能够深切地理解&a…...

MybatisPlus的主键ID生成策略和公共字段自动填充的使用及注意事项

主键策略(ID自动生成) 以下是MyBatis-Plus中常见的几种主键生成策略及其对应的枚举值(3.3.0之前的版本): 主键生成策略枚举值数据库自增IdType.AUTO用户输入IdType.INPUT分布式全局唯一IDIdType.ID_WORKER分布式全局…...

【GitHub项目推荐--微软开源的可视化工具】【转载】

说到数据可视化,大家都很熟悉了,设计师、数据分析师、数据科学家等,都需要用各种方式各种途径做着数据可视化的工作.....当然许多程序员在工作中有时也需要用到一些数据可视化工具,如果工具用得好,就可以把原本枯燥凌乱…...

Python基础之文件操作(I/O)

和其他编程语言一样,Python 也具有操作文件(I/O)的能力,比如打开文件、读取和追加数据、插入和删除数据、关闭文件、删除文件等。合理应用python提供的文件操作基本函数,可大大提高自动化实现的效率与框架代码的稳定性…...

k8s--helm

什么是helm?在没有这个helm之前,deployment service ingress helm的作用 通过打包的方式,把deployment service ingress等打包在一块,一键式的部署服务,类似yum安装 官方提供的一个类似与安装仓库额功能,…...

算法训练营第五十六天|583. 两个字符串的删除操作 72. 编辑距离

目录 Leetcode583. 两个字符串的删除操作Leetcode72. 编辑距离 Leetcode583. 两个字符串的删除操作 文章链接:代码随想录 题目链接:583. 两个字符串的删除操作 思路:直接记录需要改(增或删)几个,也就是求不…...

使用WAF防御网络上的隐蔽威胁之目录穿越

目录穿越(Directory Traversal)是一种网络安全攻击手段,也被称为路径穿越。 这种攻击允许攻击者访问存储在Web服务器文件系统上的文件和目录,这些文件和目录原本不应该对用户可见或可访问。 通过利用安全漏洞,攻击者…...

Linux:vim的相关知识

目录 vim 是一个较为常见的编译文件的命令操作。 三种模式的区分的作用如下: 命令模式: 插入模式: 进入插入模式的标志:左下角有INSERT 底行模式: 命令模式的常见命令: 底行模式常见命令&#xff1…...

Qt 国产嵌入式操作系统实现文字转语音功能(ekho库)

1.简介 Qt 国产嵌入式操作系统实现文字转语音功能(TTS)_tts驱动 转文字-CSDN博客 在继上篇文章之后,甲方粑粑不满意使用eSpeak发出的声音太难听了,这就不得不找个替代品,声音稍微好听了一些。 使用ekho开源库。 Ekho(余音)是一个免费、开源的中文语音合成软件。它目…...

Redis常见类型及常用命令

目录 常见的数据类型 一、String类型 1、简介 2、常用命令 (1)新建key (2)设值取值 ​编辑 (3)批量操作 (4)递增递减 3、原子性操作 4、数据结构 二、list类型 1、list常…...

实战纪实 | 某配送平台zabbix 未授权访问 + 弱口令

本文由掌控安全学院 - 17828147368 投稿 找到一个某src的子站,通过信息收集插件wappalyzer,发现ZABBIX-监控系统: 使用谷歌搜索历史漏洞:zabbix漏洞 通过目录扫描扫描到后台,谷歌搜索一下有没有默认弱口令 成功进去了…...

【第十五课】数据结构:堆 (“堆”的介绍+主要操作 / acwing-838堆排序 / c++代码 )

目录 关于堆的一些知识的回顾 数据结构:堆的特点 "down" 和 "up":维护堆的性质 down up 数据结构:堆的主要操作 acwing-838堆排序 代码如下 时间复杂度分析 确实是在写的过程中频繁回顾了很多关于树的知识&…...

前端JavaScript篇之JavaScript有哪些数据类型,它们的区别?

目录 JavaScript有哪些数据类型,它们的区别?数据类型区别 JavaScript有哪些数据类型,它们的区别? 数据类型 JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt… St…...

LeetCode---380周赛

题目列表 3005. 最大频率元素计数 3006. 找出数组中的美丽下标 I 3007. 价值和小于等于 K 的最大数字 3008. 找出数组中的美丽下标 II 一、最大频率元素计数 这题就是个简单的计数题,正常遍历统计数据即可,关键是你要会写代码逻辑。 代码如下&…...

archlinux 如何解决安装以后没有声音的问题

今天安装完archlinux以后发现看视频没声音 检查一下是否有 /lib/firmware/intel/sof 发现没有 如果你也是这样的话,可以尝试安装: sudo pacman -S sof-firmware 重启后再看看有没有声音: reboot 反正我有声音了...

什么是ORM思想?

1. ORM概念 ORM(Object Relational Mapping)对象关系映射模式,是一种技术,解决了面向对象与关系型数据库存互不匹配的现象。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2. ORM由来 在软件开发的过程中,通常…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...