rhcsa学习3 文件

文件系统权限

有三种权限类别可应用:读取、写入和执行

查看文件和目录的权限及所有权

 ls -l 显示有关权限和所有权的详细信息

 长列表的第一个字符表示文件类型

- 表示常规文件、d 目录、l 软链接、其它字符代表硬件设备(b和c)或其他具有特殊用途的文件(p和s)

接下来的九个字符式文件权限。它们分为三组、每组三个字符分别对应:拥有该文件的用户权限、拥有该文件的组的权限、其他所有用户的权限。如果组中显示rwx,说明该类别具有读取、写入和执行三种权限。如果其中一个字母被替换为-,则表示该类别没有这个权限。

权限之后式链接数,链接数之后,第一个名称表示拥有该文件的用户,第二个名称表示拥有该文件的组。

 如上我们要注意:

a、用户database可以删除lfile1和lfile2两个文件,因为database1对包含这两个文件的目录具有写入权限( 如图. 的所有用户为database1)

b、用户database1是组consultant1的成员,该组对lfile2的权限为r--(可读),而lfile2的其他用户的权限为(rw-),database1是其他用户,但却只有读取权限,因为组权限具有优先权,即便其他用户具有写入权限

从命令行管理文件系统权限、

更改文件和目录权限

a、通过符号法更改权限

如下:

其他用户权限+x ,变成

 可以发现文件颜色变成绿色,(只要该文件具有x(u、g、o都可),这个可执行文件的权限,就会变成绿色,代表可执行文件

虽然目录的操作也是类似的,的那要注意的是目录下面还有文件的话,如果像上面一样操作则只会修改目录本身的权限,里面的文件则不受影响,如下:

而修改目录权限后,该目录下的文件权限没有任何变化(和上上图比较):

 所以再修改目录权限时,加上-R属性递归,将该目录下的文件的权限都可以修改(后面修改用户、用户组也是同样)

如上用户组的权限加上了可写。

 也可多个一起操作

 其中- + 也可用=替代

 但是一次只能操作一组权限,如果用a则时三组一样的权限

 发现不用写满(a=-w-)都可以

通过数值法更改权限

#代表一个数字,权限有三组所以优三个数字分别对应三组权限,没组权限的值由三种权限代表的数值相加得到

三种权限代表数值: r 为4,w为2,x为1(其中-为0)

如:rwx代表4+2+1=6

what目录的权限中,该三组权限分别计算(u :4+2+1=7、g:0+2+1=3、o:0+0+1=1)

所以该目录的权限表示为731

用数值设置权限:

 发现how变成绿色底,(只要其他用户权限中有w则会)

 更改文件和目录用户或组所有权(用chown命令)

我们知道新创建的文件由创建该文件的用户所有。默认情况下,新文件的组的所有权为创建该文件的主要用户组。

修改文件所有权  chown  修改后的用户名  文件名

 如果是文件直接可以这样修改,但是如果是目录这样修改后其子文件则不会有变化:

 要加上-R选项,才可以将子文件与目录的修改同步

用冒号分隔达到同时修改用户组和用户

(补充,也可用. 分隔,但是不建议,因为如果存在同名的带.的用户名,则无法达到同时修改的效果)而且如果不想修改所属用户,可以只是:或.  再加修改后的组名

当然也可单独修改用户组(用chgrp命令)

管理默认权限和文件访问

特殊权限(构成了除了基本用户、组和其他类型之外的第四种权限类型)

 (注意:s和t建立在已有x执行权限的基础上,如果有这两种权限却没有x则会在相应位置变成S和T

关于u+s

例如先查看passwd命令的绝对路径,再查看其所属文件的权限,不难发现原本再所属用户权限中x的位置变成了s,如果没有这个s,变成S或x会怎样呢?

 我们可以发现当没有s权限时,我们在普通用户去修改密码,即使输入正确,也无法操作成功,因为我们不是当前用户自己去修改,而是拥有该文件所有的root用户去执行修改。所以当我们没有s,则无法调用让root用户修改。

另一方面,当我们用passwd命令时,需要将密码写入/etc/passwd文件,上图我们可以看到,我们是没有权限去读取修改的,所以也可以知道只有root用户可以去执行。

 如果时S也是可以的

关于g+s

当我们对目录的所有组添加s权限时,如果对目录的拥有组进行了修改,则后面新建的内容也会同步。

 修改:

 我们可以发现新建的文件的拥有组同步成student,且新创建的目录会继承当前目录的属性(权限、拥有人、拥有组都相同)

该权限对新建的文件的影响:如果要用命令去操作该文件,则不是以运行命令的用户身份运行,而是以拥有该文件的组运行

o+t

表示只有文件所有者及root才能删除该目录文件

当what目录下的情况如下时,

 发现只有student和root用户可以删除what目录下的所有文件

而除二者以外的用户去删除里面非所有用户的文件时,则无法删除。

 

当我们去设置特殊权限时,除了字符表示(u+s、g+s、o+t)等,也可以曹勇数值表示,分别对应4、2、1。而且时位于最前面的数字

如图s表示4,放在三组权限数值的最前面即可表示

默认文件权限

创建新文件或目录时,会为其分配初始权限。有两个因素会影响这些初始权限(创建长规文件还是目录,当前的umask)

创建新目录,一般分配0777。常规文件一般时0666.

shell会话会设置一个umask,进一步限制初始设置的权限。例如:umask为0002可清除其他用户的写入位。0077清除创建文件的所有组和其他权限。

不带参数运行umask命令将显示shellumask的当前值

 umask 数字 表示修改umask的值,以student用户为例:

新创建的目录bag权限为0775( 初始0777-umask0002=0775)

新创建的文件pen.txt权限为664(初始0666-umask0002=0664)

当我们设置umask 为0004

新建文件file1权限为662(0666-0004=0662)

新建目录wen权限为773(0777-0004=0773)

但是我们这种设置umask的方式时临时生效的。我们重启可能就又失效了。

如图,重新登录后又时初始的0002 

用户的默认umask由shell启动脚本设置。默认情况下,如果账户UID为200以上,并且用户名和主要组名相同,则会分配一个值为002的umask,否则umask为022

该设置信息存在/etc/profile

 vim  /etc/profile查看

大概在59行的位置 可以找到相关信息

-gt 表示>       -lt  <         eq =          -gn 表示组名  -un表示用户名 

(ge大于等于,le小于等于,ne不等于)

 

按照上面的逻辑,root用户UID<199所以不满足该条件为0022

 如果要自己设置umask且达到一个永久的效果,则可以通过在/etc/profile.d的目录下创建一个脚本文件,文件名可自取,的那建议规范一点。shell启动该脚本来更改此设置。

脚本内容按照上面逻辑

vim /etc/profile.d/local-umask.sh

 保存后,要让该脚本可被执行,所以要设置一下权限

 要启动该脚本,则直接 写该路径即可

之后我们来看此时root的umask,按照上图逻辑UID<199,umask为007,所以root应该为007。

记得要重新登录root才可生效。

 我们可以发现,student用户也变了,为0022,说明我们设置成功,记得除了UID号还有一个条件是用户名=用户组名(所以看到即使UID>199也未必是0022)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频融合平台EasyCVR综合管理平台加密机授权报错invalid character是什么原因

视频融合平台EasyCVR综合管理平台具备视频融合汇聚能力&#xff0c;作为安防视频监控综合管理平台&#xff0c;它支持多协议接入、多格式视频流分发&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包…

[C++]杨辉三角

目录 题目 解题思路 代码实现 获取数字 打印函数 主函数 全部代码 运行结果 题目 给定一个非负整数numRows &#xff0c;生成「杨辉三角」的前numRows行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 解题思路 第k列的第i个数字的值第k-1列的(…

【漏洞复现】深信服科技EDR平台存在任意用户登录漏洞

漏洞描述 深信服终端检测响应平台EDR,通过云网端联动协同、威胁情报共享、多层级响应机制,帮助用户快速处置终端安全问题,构建轻量级、智能化、响应快的下一代终端安全系统。 该EDR系统存在任意用户登录漏洞&#xff0c;攻击者通过漏洞可以登录系统后台并获取服务器的敏感信息…

一次预制体丢失[XX prefab at index n is missing]的排查经历 及 【用代码查找场景中的预制体】

一、症状描述 &#xff08;1&#xff09;从【主场景】跳转【某场景】时&#xff0c;报错——预制体丢失[prefab is missing] &#xff08;2&#xff09;在编辑器单独启动该场景&#xff0c;没有报错 二、症状溯源 场景里面有预制体实例&#xff0c;但是我把预制体的资源删除…

vue2 vuex

一、Vuex 概述 Vuex 是一个 Vue 的 状态管理工具&#xff0c;状态就是数据。 大白话&#xff1a;Vuex 是一个插件&#xff0c;可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。 使用场景 某个状态 在 很多个组件 来使用 (个人信息) 多个组件 共同维护 一份数据 (购物车) …

17-Sharding-jdbc

一 Sharding-JDBC介绍 1 背景 随着通信技术的革新&#xff0c;全新领域的应用层出不穷&#xff0c;数据存量随着应用的探索不断增加&#xff0c;数据的存储和计算模式无时无刻不面临着创 新。面向交易、大数据、关联分析、物联网等场景越来越细分&#xff0c;单 一数据库再也无…

MongoDB常用的比较符号和一些功能符号

比较符号 results collection.find({age: {$gt: 20}})功能符号 results collection.find({name: {$regex: ^M.*}})

伪微分反馈控制(Pesudo-Drivative Feedback Control——PDF)

运动控制-单轴伺服控制带宽分析&#xff08;二&#xff09; - 知乎 (zhihu.com) 伪微分反馈控制_百度百科 (baidu.com) 伺服电机控制器的参数整定_老马过河hhh的博客-CSDN博客 伪微分PIIP控制_yukee10的博客-CSDN博客

Discourse 能支持多少数量的主题

支持主题的数量和 ID 使用的数据类型有关。 根据我们从 Discourse 上 dump 出来的 SQL&#xff0c;我们看到 Discourse 的官方使用 Integer 作为 ID 的数据类型。 随后&#xff0c;我们查看了 pgsql 的官方文档&#xff0c;integer 是 4 字节的&#xff0c;能够存储的最大值为…

Pythonの类

Python是一种面向对象编程语言&#xff0c;因此类在Python中是很重要的概念。类是一种定义数据和行为的模板&#xff0c;可以创建对象并针对特定的问题对其进行操作。 在Python中&#xff0c;类的定义以关键字"class"开头&#xff0c;后跟类的名称。类可以包含方法和…

数据库 设计规范数据库设计样例

目录 5 数据库5.1 数据库命名规范5.2 数据库字段命名5.2.1 字段命名规范5.2.2 命名规范5.2.3 待优化命名示例5.2.4 字段类型规范5.2.5数据库中每个字段的规范描述 5.3表设计5.4 参考设计5.4.1 应用场景5.4.2 需求分析5.4.3 设计思路5.4.4 表结构设计5.4.5 缓存策略Q1 冗余设计和…

音视频入门基础理论知识

文章目录 前言一、视频1、视频的概念2、常见的视频格式3、视频帧4、帧率5、色彩空间6、采用 YUV 的优势7、RGB 和 YUV 的换算 二、音频1、音频的概念2、采样率和采样位数①、采样率②、采样位数 3、音频编码4、声道数5、码率6、音频格式 三、编码1、为什么要编码2、视频编码①、…