LINUX入门篇【3】

简介: LINUX入门篇【3】

前言:

在本章节中,我们将讲完LINUX的权限的剩下的内容,

1. 改变文件的隶属问题:

前文我们知道,文件的权限包括三个方面:拥有者,所属组和其他,前两者是可以展示在文件属性信息上的,而other是不会体现出来的,但文件的拥有者,所属组和其他不能改变么?答案当然是否定的,我们是可以改变文件的隶属问题的。利用ch系列指令我们就可以修改。

chown +其他用户名 +文件名:改变文件的拥有者
chgrp +其它用户名+文件名:改变文件的所属组
chown +要改变的拥有者用户名:要改变的所属组用户名 文件名:同时改变文件的拥有者:所属组

但倘若我们以普通用户去使用这些指令,会报错说无权限,我们修改文件其实是需要他人的允许的,但LINUX下没法进行商量的过程,故我们想执行这些命令,就需要我们是root用户或者sudo以root用户的权限去执行上面的指令。

2.LINUX的文件的类型:

前面我们已经讲过ll指令下,文件的前十个字符中的后九个,而的第一个字符所代表的就是文件的类型。

注意:LINUX的文件类型不通过后缀来区分,也就是说不管这个文件叫什么,主要看的是它里面的内容来定文件的类型,但不代表LINUX的文件不用后缀,因为在LINUX中有很多配套的工具和软件,他们会根据后缀来查看能否使用对应的工具和软件,比如gcc想要编译程序就需要文件的后缀必须是**.exe**.

文件的分类如下:

1.“-”开头:普通文件,比如文本文件,源代码,图片,视频,库,可执行程序等
2" d"开头:目录文件,也就是文件夹
3.”b"开头(block):块设备文件,比如磁盘,硬盘等,我们的磁盘基本都放在/dev的目录下
4.”c"开头:字符设备文件,比如键盘显示器等
块设备文件和字符设备文件的区分就是:字符设备文件无法支持随机访问,即输入的顺序是什么就是什么,没法倒退,而磁盘等文件是可以退出或者进入重复进行的。
5.“l"开头:链接文件,类似windows里面的快捷方式,指可以不用一层一层调用目录到对应目录下就可以直接达到对应目录下直接访问。
6.”p"开头:管道文件,用来传递信息的
7.“s"开头:socket文件,即网络文件

再次强调:LINUX不要求文件的后缀,但LINUX的工具会关注文件的后缀,这两个要区分好,别弄混,比如gcc要求后缀为.exe

那我们对于文件后缀的态度是什么:
虽然LINUX不通过后缀来识别文件的类型,但我们依旧推荐使用规范常规的文件后缀标识。

file+文件名字:可以用来具体查看文件类型,或者用来确定文件里面是否为空,是否有内容,倘若文件里面没内容,它就会返回empty

3.权限章节的三个问题:

1.问题一:

对于一个目录而言,如果要进入一个目录,需要什么权限?(注意目录文件也是一个文件,并不是单独的一个东西,这正契合了LINUX的那句话:LINUX下皆文件

目录文件不同于普通文件,它对应的rwx并不是我们常规的read write 运行三个方面,它的权限内容如下:

1.x权限:用来决定能否cd进入这个目录文件
2.r权限:用来决定我们能否ll ls-l来查看文件的具体信息
3.w权限:用来决定我们能否在当前的目录下进行增加,删除,重命名文件等一系列可以改变文件的操作

同样,对于root来说,这些权限是没法限制它的,它可以无视这些权限执行指令

故对于我们的第一个问题,我们需要的正是x权限来让我们可以进入一个目录文件。

2.问题二:

为什么我们创建的文件,默认权限不是777,而是664或者其他数字,包括我们的普通文件和目录文件,都不是777开始,而是其他数字开始,而是775或者其他数字开始?

**首先要说明,文件的权限全放开并不是一件好事,文件创建应该有所限制,在我看来,至少应该限制other用户的功能,由文件的拥有者本人后序为文件再加上other的权限,**但LINUX是从另一个角度去分析问题的,由于文件本身的性质以及我们自身的使用习惯,普通文件的起始权限为666权限,目录文件由于其本身的的特性一般是777权限,但再LINUX中存在权限掩码umask,它可以定制一个文件被创建时的默认权限,故我们得到的权限码实际上就是起始的666 777权限经过权限掩码的修饰得到的。

先说明一下权限掩码的指令和相关知识:

1.umask:是用来查找权限掩码的

屏幕上会为我们展现4位数字,第一位先不看,后三位即对应着文件权限的3个8进制码。

2.umask+对应数字(后三位):可以修改权限掩码

我们权限掩码和我们初始权限码的运算关系为:

初始权限码&(~权限掩码)即为我们对应的文件创建时得到的权限码,经过计算我们可以得出的结论是,umask有1的位置倘若初始码也有1,则此位变成0,umask有1但初始码为0,保留0,umask为0,但初始码为1的,保留1,例如:

以666为例子:666经过002的修饰,得到的即为110 110 100,对应的数字即为664,故我们文件的权限码即为664.

3.问题三:

在普通用户的目录文件下,当普通用户有当前目录文件的w权限时,是可以删除包括root在内的所有拥有者的文件的,但我们应该删除么?

首先,从问题里我们要先提取到一个很重要的知识点:即一个文件能否被删除,并不取决于文件本身,而是取决于文件所在的当前目录,其对应的用户是否拥有对这个目录文件的x权限。

所以,在我看来,我们删除之前应该首先沟通好,或者最好别删除别人的文件,很容易造成他人重要的损失。

但我们在工作中有时候会遇到小组合作实现软件开发的情况,这个时候我们就会和他们共用一个平台,那如果我们想要在特定的一个目录下,实现文件的共享应该怎么办呢?

如上图所示:

在LINUX下为我们提供了一个为/tmp的目录文件,所有用户都可以进入这个目录,并且拥有开放的大部分权限,故我们的所有用户都可以将对应的文件放在这个tmp目录下共享从而实现读和写,同时所有的用户都可以实现对文件进行增删查改(对应的目录文件的r w x的权限全放开),如果我们对文件的权限进行设定,不让他人看/写,确实可以做到,但正如我前面所说,文件的删除和文件本身是无关的,虽然限制文件本身,但其他用户仍然可以删除你的文件,这是很严重的问题,有人说那直接去掉other的w文件权限不就好了么?但那样的话,当前目录就创建不了文件了,这样共享的意义就无意义了。

故为了解决这个问题,我们使用指令chmod o+t +目录文件名,这样就不能任意删除他人的文件了,只能删除拥有者自己的文件,在显示这个目录文件时,o的x位置会变成一个t,我们把这个t称之为粘滞位

注意,粘滞位是专门用来对目录文件(一般都是给共享的目录文件使用)使用的,当目录文件施加粘滞位时,为other设置了一个权限,具有X意义,同时也进一步对目录的权限进行进一步的限定,该目录里的文件,只有root用户或者文件的拥有者有权力进行删除文件的操作,其他人一概不允许删除。

总结:

LINUX权限是我们理解操作系统包括windows和LINUX他们的一个基础,通过对权限的学习以及前面的LINUX知识的学习,我想我们最应该刷新我们对操作系统这个东西的概念和认识,应该清楚操作系统到底是什么,我们当前操作的电脑是如何和硬件交互的,我们操作计算机的权限和功能是怎样匹配的,身份和权限是怎样的概念,我想掌握这些,我们下一步就可以进入我们的LINUX的开发篇了。

目录
相关文章
|
3月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
242 73
|
1月前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
78 3
|
2月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
64 1
|
2月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
37 0
Linux入门1——初识Linux指令
|
6月前
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
|
2月前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
2月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
30 0
|
4月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
73 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
4月前
|
存储 Ubuntu Linux
Linux基础入门
Linux基础入门
33 1
|
4月前
|
Ubuntu Linux Shell
Linux 终端入门
Linux 终端入门
53 0