IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux基础第2节(2)----配置与管理文件系统 -> 正文阅读

[系统运维]linux基础第2节(2)----配置与管理文件系统

4.管理linux文件权限

1.理解文件和文件权限。

  • 文件(file):是操作系统用来存储信息的基本结构,是一组信息的集合。文件名是唯一标识。与windows不同的有,在linux中,文件名称地后缀不能确定文件的种类。在linux中,文件名区分大小写。在linux中,如果文件名以"."开始,表示文件为隐藏文件,需要用"ls -a"命令才能显示
  • 权限:在linux中每一个文件或目录都包含访问权限,这些权限决定了谁能访问和如何访问这些文件和目录,通过设定权限可以从以下3种访问方式限制访问权限
  1. 只允许用户和自己访问,用字母U表示
  2. 允许一个预先指定的用户组种的用户访问,用字母G表示
  3. 允许系统种的任何用户访问,用字母O表示

? ? 一个文件或目录可能有读(r),写(w)及执行权限(x)。当创建一个文件时,系统会自动赋予不同用户的权限。我们创建一个文件,通过"ls -l"查询

?可以看出,root用户有读写权限,组有可读权限,其他用户或组有可读权限

接下来我们刨析文件的详细信息

  • -rw- r-- r-- .? 表示文件类型权限
  • 数字? ? 表示连接数
  • 第一个root 表示文件用有人
  • 第二个root表示文件所属群组
  • 数字? 表示文件容量
  • 15 11:25 表示文件最后被修改的时间
  • 1.txt 表示文件名称

2.详解文件的各种属性信息

①第一组为文件类型权限

?每一行的第一个字符一般用来区分文件的类型,一般取值d,-,l,b,c,s,p,具体含义是:

  • d:表示这是一个目录。
  • -:表示这个文件是一个普通的文件
  • l:表示该文件是一个符号链接文件,实际上它指向另一个文件
  • b,c:表示该文件为区块设备或其他的外围设别,是特殊类型的文件
  • s,p:这些文件关系到系统的数据结构和管道,通常很少见到

2~10字符表示文件的访问权限。九个字符,3个为一组,左边三个表示文件所有者权限,中间三个表示与所有者同一组的用户的权限,右边三个表示其他用户的权限。

  • r(read,读取):对文件而言,具有读取文件内容的权限;对目录而言,具有浏览目录的权限
  • w(write,写入):对文件而言,具有新增,修改文件内容的权限;对目录来说,具有删除,移动目录内文件的权限
  • x(excute,执行):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
  • -:表示不具有该项权限

②第二组为有多少文件名连接到此节点(i-node)

? ? ? ?每个文件都会将其权限与属性记录到文件系统的i-node种。不过,我们使用的目录树却使用文件来记录,因此每个文件命都会连接到一个i-node。这个属性记录的就是有多少不同的文件名连接到相同的的一个i-node??

③第三组表示这个文件(或目录)的拥有者

④第四组表示这个文件(或目录)的所属群组

⑤第五组为这个文件的容量大小,默认是Bytes

⑥第六组为这个文件的创建日期或者最近的修改日期

⑦第七组为这个文件的文件名

3.使用数字表示法修改权限

修改权限的语法:chmod? ? [选项]? ? 文件

所谓数字表示法就是将读取(r),写入(w)和执行(x)分别以数字4,2,1表示

?4.使用文字表示法修改权限

使用文件表示法时,系统用四种字母来表示不同的用户

u:user ,表示所有者

g:group,表示所属组

o:other ,表示其他用户

a:all,表示以上三种用户

使用3种字符的组合表示法设置操作权限

r:read,可读

w:write,写入

x:excute,执行

操作符号包括以下几种

+:添加某种权限

-:减去某种权限

=:赋予给定权限并取消原来的权限

?同时修改三种用户权限时,用逗号隔开

修改目录权限和修改文件权限相同,都是使用chmod命令,但不同的是,要使用通配符“*”来表示目录中所有文件

如果目录中包含子目录,则必须使用-R参数来同时设置所有文件?

5.修改文件与目录的默认权限和隐藏权限

1.理解文件预设权限:umask

umask指的就是用户在建立文件或目录时的默认权限值。

?用数字的方式显示umask,umask有四组数字,前面的第一个数字表示特殊权限

?以符号类型的方式显示权限

目录和文件的默认权限是不一样的,x权限对于目录非常重要的,但是一般文件不应该有执行的权限。所以一般情况下:

  • 若使用者建立文件:则预设没有可执行(x)权限,即只有rw这两个权限,也就是最大为666,预设权限为-rw- rw- rw-
  • 若使用者建立目录,则关于用户是否能进入目录,则一般具有x权限,因此所有权限都打开了,一般是777,预设权限drwxrwxrwx。

umask的分值就是该默认值需要减掉的权限。

根据虚拟机的umask值可知:此虚拟机新建一个文件的权限为-rwr--r--。新建一个目录的权限是drwxr-xr-x。

2.更改文件预设权限umask

编辑家目录下面的.bashrc隐藏文件

?在末尾添加一行umask 数字,保存退出

立即执行修改后的设置

?通过查询,发现umask已经修改成功了

3.设置文件隐藏属性

①chattr命令-----改变文件属性

语法:chattr [-RV] [-v<版本编号>][+/-/=<属性>][文件或目录]

这项指令可以改变存放在ext4文件系统上的文件或目录属性,这些属性共有以上几种模式

  • a:系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件
  • b:不更新文件或目录的最后存取时间
  • c:将文件或目录压缩后存放
  • d:将文件或目录排除在操作之外
  • ?i:不得任意改动文件或目录
  • s:保密性删除文件或目录
  • S:即时更新文件或目录
  • u:预防意外删除

chattr的相关参数如下,其中最重要的是+i与+a这两个属性。由于这些属性是隐藏,所以需要使用lsattr命令

-R :递归处理,将指定目录下的所有文件及子目录一并处理

-v<版本编号>:设置文件或目录版本

+<属性>:开启文件或目录的该项属性

-<属性>:关闭文件或目录的该项属性

=<属性>:指定文件或目录的该项属性

②lsattr命令-----显示文件隐藏属性

语法:lsattr [-adR] 文件或目录

-a:将隐藏文件的属性也显示出来

-d:如果是目录,仅列出目录本身的属性,而非目录内的文件名

-R:连同子目录的数据也一并列出来

?4.设置文件特殊权限:SUID,SGID,Sticky

SUID:<u+s>,数字表示4

  • 对文件的影响:以拥有文件的用户身份,而不是以运行文件的用户执行文件
  • 对目录无影响

SGID:<g+s>,数字表示2

  • 对于文件来说,sgid仅对二进制命令程序有效,执行命令的用户可以获得该程序执行期间所属组的权限,suid是拥有这个用户的权限
  • 对于目录来说(继承目录所属的组),Linux默认情况下用户创建文件,默认用户和组都是它自己,sgid可以让用户在此目录下创建的文件和目录,具有与此目录相同的用户组设置

Sticky:<o+t>,数字表示1

  • 对文件无影响
  • 对目录来说,具有写入访问权限的用户仅可以删除其所拥有的文件,而无法删除或强制保存其他用户所拥有的文件

6.修改文件/目录的所属关系

语法格式:

chown 文件/目录所属人:文件/目录所属组? 文件/目录? ?//修改所属者和所属组

chown? :文件/目录所属组? ?文件/目录? ? ? //仅修改所属组

?chown? 文件/目录所属者? ?文件/目录? ? //仅修改所属者

?

7.文件访问控制列表

? ? ? ? 不知道大家注意到没?前面讲的一般权限,特殊权限和隐藏权限其实有一个共性--权限是针对某一类用户设置的。如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(Access Control List,ACL)。通俗来讲,基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限。

? ?1.setfacl命令----用于管理文件的ACL规则

语法规则:

? ? setfacl? ? ?[参数]? 文件名称

文件的ACL提供的是在所有者,所属组,其他人的读/写/执行权限之外的特殊权限控制,使用setfacl可以针对单一的用户或用户组,单一文件或目录来进行读/写/执行权限的控制

针对目录需要用-R参数;针对普通用户需要用-m参数;想要删除某个文件的ACL,可以使用-b参数。

以下我就用2021的红帽RHCSA考试原题为例,示范以下setfacl的用法:

题目:配置 /var/tmp/fstab 权限

将文件 /etc/fstab 复制到 /var/tmp/fstab 。

配置 /var/tmp/fstab 的权限以满足如下条件:

文件 /var/tmp/fstab 自 root 用户所有?

?文件 /var/tmp/fstab 属于组 root

文件 /var/tmp/fstab 应不能被任何人执行

用户 natasha 能够读取和写入 /var/tmp/fstab

用户 harry 无法写入或读取 /var/tmp/fstab

所有其他用户(当前或未来)能够读取 /var/tmp/fstab

2.getfacl命令-----用于显示文件上设置的ACL信息

语法格式为:getfacl? ? ?文件名称?

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章           查看所有文章
加:2022-02-16 13:33:29  更:2022-02-16 13:36:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:01:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码