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账号,或者拥有者和所属组才能进行删除。

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

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

相关文章

3.【SpringBoot3】文章分类接口开发

序言 在文章分类模块,有以下接口需要开发: 新增文章分类文章分类列表获取文章分类详情更新文章分类删除文章分类 数据库表字段和实体类属性: 在数据库表中,create_user 来自于 user 表中的主键 id,是用来记录当前文…

使用AFPN渐近特征金字塔网络优化YOLOv8改进小目标检测效果(不适合新手)

目录 简单概述 算法概述 优化效果 参考文献 文献地址:paper 废话少说,上demo源码链接: 简单概述 AFPN的核心思想:AFPN主要通过引入渐近的特征融合策略,逐步整合底层、高层和顶层的特征到目标检测过程中。这种融合…

正信晟锦:亲戚借了钱怎么要回来

亲戚间的金钱借贷,往往是情感与金钱交织的微妙话题。在中国传统文化中,家族关系至关重要,因此处理此类事宜时需要格外细致和谨慎。要回借出的钱,不仅要考虑到资金的回流,更要维护和谐的家庭关系。 沟通是解决问题的关键…

v-for中使用v-model的坑点

问题场景: 有这样一种场景,比如我们需要根据数据创建多个input输入框 <template><div v-for"(item, index) in list" :key"index"><a-input v-model"item"></a-input></div></template><script>expo…

Git--创建仓库(1)

git init Git 使用 git init 命令来初始化一个 Git 仓库&#xff0c;Git 的很多命令都需要在 Git 的仓库中运行&#xff0c;所以 git init 是使用 Git 的第一个命令。 在执行完成 git init 命令后&#xff0c;Git 仓库会生成一个 .git 目录&#xff0c;该目录包含了资源的所有…

别再局限于Android和iOS了尝试鸿蒙APP系统开发吧!

最近&#xff0c;多家互联网公司也发布了鸿蒙OS的App开发工程师的岗位&#xff0c;开启了抢人大战&#xff0c;有的企业开出了近百万的年薪招聘鸿蒙OS工程师&#xff0c;而华为甚至为鸿蒙OS资深架构师开出了100万元—160万元的年薪。 「纯血」鸿蒙开启&#xff0c;欲与 Andori…

css clip-path

1 解释 clip-path 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示&#xff0c;区域外的隐藏。浏览器会裁剪掉裁剪区域以外的内容&#xff0c;包括: 背景&#xff0c;内容&#xff0c;边框&#xff0c;阴影等&#xff0c;另外也不会捕获裁剪区域之外的hover click等事…

《JavaScript权威指南》读书笔记1

服创要开始了&#xff0c;选题基本上都是关于ai的&#xff0c;之前写的项目没有和ai有关的&#xff0c;也没有学习过这方面的知识。现在我们组基本上确认的选题是&#xff1a;【A01】基于文心大模型的智能阅卷平台设计与开发【百度】【A01】基于文心大模型的智能阅卷平台设计与…

用 AI 定制龙年红包封面保姆级教程

作者&#xff1a;苍何&#xff0c;前大厂高级 Java 工程师&#xff0c;阿里云专家博主&#xff0c;CSDN 2023 年 实力新星&#xff0c;土木转码&#xff0c;现任部门技术 leader&#xff0c;专注于互联网技术分享&#xff0c;职场经验分享。 &#x1f525;热门文章推荐&#xf…

代码中遇到的问题2

目录 记录: 好处&#xff1a; 问题一&#xff1a; 解答: 问题二: 解答: 常见类型问题: 记录: string connStr ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; 在代码中写上这段代码&#xff0c;将连接数据库的代码语句放到&#xff…

算法练习-替换数字(思路+流程图+代码)

难度参考 难度&#xff1a;简单 分类&#xff1a;字符串 难度与分类由我所参与的培训课程提供&#xff0c;但需要注意的是&#xff0c;难度与分类仅供参考。以下内容均为个人笔记&#xff0c;旨在督促自己认真学习。 题目 给定一个字符串S,它包含小写字母和数字字符&#xff0…

【GitHub项目推荐--开源2D 游戏引擎】【转载】

microStudio 是一个可在浏览器中运行的游戏引擎&#xff0c;它拥有一套精美、设计精良、全面的工具&#xff0c;可以非常轻松地帮助你创建 2D 游戏。 你可以在浏览器中访问 microStudio.dev 开始搭建你的游戏&#xff0c;当然你可以克隆现有项目或创建新游戏并开始编码&#x…

Go 基本数据

第 2 章 基本数据类型 Go 的数值类型包括了不同大小的整数 、浮点数 、复数&#xff1b; 各种数值类型分别有自己的大小&#xff0c;对正负号支持也各不相同&#xff1b; 1. 整数&#xff08;OK&#xff09; 整数类型&#xff08;整型&#xff09;整数类型Go 语言同时支持 有…

代码随想录算法训练营29期|day28 任务以及具体安排

93.复原IP地址 class Solution {List<String> result new ArrayList<>();public List<String> restoreIpAddresses(String s) {StringBuilder sb new StringBuilder(s);backTracking(sb, 0, 0);return result;}private void backTracking(StringBuilder s,…

VS Code Json格式化插件-JSON formatter

&#x1f9aa;整个文件格式化 按快捷键Shift Alt F &#x1f96a;仅格式化选择内容 需要选择完整的json段落即&#xff1a;{} 或 [] 括起来的部分&#xff0c;再按快捷键Ctrl K F

高分辨率图像合成;可控运动合成;虚拟试衣;在FPGA上高效运行二值Transformer

本文首发于公众号&#xff1a;机器感知 高分辨率图像合成&#xff1b;可控运动合成&#xff1b;虚拟试衣&#xff1b;在FPGA上高效运行二值Transformer Scalable High-Resolution Pixel-Space Image Synthesis with Hourglass Diffusion Transformers We present the Hourgla…

蓝桥杯真题(Python)每日练Day4

题目 OJ编号2117 题目分析 第一种先采用暴力的思想&#xff0c;从第一根竹子开始&#xff0c;找到连续的高度相同的竹子&#xff0c;砍掉这些竹子&#xff0c;一直循环这个方法&#xff0c;直到所有的竹子高度都为1。很明显&#xff0c;依次遍历竹子的高度复杂度为O&#x…

jdk的安装和Tomcat的安装

jdk的安装 双击jdk&#xff0c;然后一路下一步 公共JRE可以关闭&#xff0c;没多大用&#xff0c;反而会占用内存 计算机–>属性–>高级系统设置–>环境变量 系统变量–新建 JAVA_HOMEjdk的存放路径 修改path 在path的最后面添加&#xff08;&#xff1b;%JAVA_H…

SpringBoot整合SSE

目录 1.SseController2. SseServiceSseServiceSseServiceImpl 3.SendMessageTask4.将定时任务加入启动类5.参考资料 1.SseController Slf4j RestController RequestMapping("sse") public class SseController {Autowiredprivate SseService sseService;RequestMappi…

cesium应用篇:静态图添加与平移、缩放

应用说明 添加静态图到指定extent通过键盘事件对static image进行调整 向东、西、南、北移动沿东西、南北方向缩放命令行侧输出当前extent&#xff0c;可用于几何匹配 初始化 Earth 初始化 <!DOCTYPE html> <html lang"en"> <head><meta c…