“权限之舞:Linux安全之道”-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

W...Y的主页

代码仓库分享

 


前言

在之前的Linux博客中我们学习了基础的Linux指令具体可以订阅一下博主的Linux专栏学习。当我们想进行递归删除文件时等等许多操作中只有在root账号中有询问或只能在root账号中添加未安装的指令呢今天我们来讲一下Linux的一些权限长话短说我们开始今天的内容

目录

Linux权限的概念

sudo指令

Linux权限管理

文件类型和访问权限事物属性

 文件访问者的分类人

文件权限值的表示方法

文件访问权限的相关设置方法

chcod指令


Linux权限的概念

Linux下有两种用户超级用户root、普通用户。

超级用户可以再linux系统下做任何事情不受限制
普通用户在linux下做有限的事情。
超级用户的命令提示符是“#”普通用户的命令提示符是“$”。

当我们在Linux系统中可以进行来回的切换root与普通用户。

命令su [用户名]
功能切换用户。
例如要从root用户切换到普通用户user则使用 su user。 要从普通用户user切换到root用户则使用 su rootroot可以省略此时系统会提示输入root用户的口令。 

举个例子

我现在就是一个普通用户想要进入root账户中去只需要输入su指令后正确输入root账户的密码即可进入root账户(输入密码时密码是不会显示的) 

当我们想要快速再返回到普通用户账户时可以直接使用快捷键ctrl+d或者输入指令exit即可。

我们还有一种进入root账户的方法输入指令su -即可。这样输入后与之前的操作相同输入root账户密码即可进入但是在命令行中会比上面指令多出几行内容。

就会出现上面类型之类的话语虽然达到的结果是相同的但是底层的意义是不同的。使用su指令就是暂时将身份提升至root而su -指令本质是以root身份重新登陆一次就如同点开xshell登录root账户一样。

 同样root账户也可以切换普通用户因为root账户下可能有许多普通用户所以在切换时su + 用户名即可。

在普通账户切换root账户时需要输入root账户的密码但是在root切换到普通用户时是不需要输入密码进行验证的 

当我使用的是普通用户切换到root账户下的另一个普通用户去直接切换不用root作为媒介应该输入谁的密码呢

输入自己账户的密码进不去输入root账户的密码进不去所以想要普通用户切换到另一个普通用户就要输入目标用户的密码进行切换。

但是如果我们有root账户的密码我们就可以随意的进入每个普通用户中去这是非常危险的行为所以root账户的密码必须要复杂且保密 

但是如果我们就是想使用普通用户的账户来进行一条指令的短暂操作我们应该怎么办呢

sudo指令

sudo指令可以短暂的将我们的身份切换为root账户进行执行一条命令。

命令sudo + 过去学到的各种指令

如果没有sudo指令的安装我们可以在自己的root账户中输入yum install sudo 指令即可。

我们在普通用户中想要以root的身份创建一个文件应该怎么做

 我已经正确的使用sudo指令了为什么还是创建不了呢甚至报错

那是因为在root账号中有一个类似于白名单的文件将我们的普通用户进行加入才可以进行sudo指令操作。

我们的用户放在了以root创建的一个目录中去一个用户只有在这个配置文件中才可以使用sudo指令反之则不能使用。

所以Linux系统考虑的非常周到如果我们每个人都可以使用sudo指令那么root账号将变得毫无意义。如何添加用户我们在后面的博客中讲解。

Linux权限管理

在生活中我们都会遇到权限不足的问题比如一个群聊是否为管理员、爱奇艺有无VIP会员等等都与权限有关。当我们看那些需要vip的电影如果没有vip就是看不了。而Linux中也会有这些权限而Linux一切路径下皆文件所以我们Linux权限一般是针对用户与文件的下面我们来了解一些Linux中的权限。

文件类型和访问权限事物属性

对于每个文件我们也有相对应的属性文件属性上我们分为w、r、x。

上图是一个文件的信息分布即意义我们可以使用ll、ls -d等指令查看文件的详细信息内容。

文件类型

d文件夹
-普通文件
l软链接类似Windows的快捷方式
b块设备文件例如硬盘、光驱等
p管道文件
c字符设备文件例如屏幕等串口设备
s套接口文件 

基本权限 

i.读r/4Read对文件而言具有读取文件内容的权限对目录来说具有浏览该目录信息的权限
ii.写w/2Write对文件而言具有修改文件内容的权限对目录来说具有删除移动目录内文件的权限
iii.执行x/1execute对文件而言具有执行文件的权限对目录来说具有进入目录的权限
iv.“—”表示不具有该项权限

 文件访问者的分类人

 对于我们的用户访问文件Linux会将它们分为三种类型拥有者、所属组、other。

文件和文件目录的所有者u---User中国平民 法律问题
文件和文件目录的所有者所在的组的用户g---Group不多说
其它用户o---Others 外国人

这些分类不应该是对人应该是每个人扮演的角色。那这些角色与root、普通用户都有什么关系呢

上图就是我们文件所对应的拥有者与所属组。那什么是other呢当其他用户访问我们的一个文件或目录时Linux会将其用户看作other。 

那一个文件会有拥有者就足够了为什么还会有所属组呢

Linux创建所属组就是为了方便管理就如同微信中拉了一个群聊一样几个人创建一个所属组以某个用户的用户名命名。但是现在的资源比较丰富所以所属组已经不经常使用了。而所属组就是将一个人或一群人放入一个组里进行文件权限的共享。

文件权限值的表示方法

a)字符表示方法

文件权限内容与文件权限属性的后九个字符有关前三个代表拥有者的权限中间三个代表所属组的权限最后三个代表other的权限。 

而我们的rwx也可以用二进制的形式进行存储000代表---001--x……110代表rw-111代表rwx。这些二进制也可以转换成8进制从0~7。 

 b)8进制数值表示方法

文件访问权限的相关设置方法

其实这些文件的访问权限属性我们都可以进行更改它们都是可以改变的只要属于所有者的名下即可改变。修改时我们需要使用一个指令chmod。

chcod指令

功能设置文件的访问权限
格式chmod [参数] 权限 文件名
常用选项

R -> 递归修改目录文件的权限
说明只有文件的拥有者和root才可以改变文件的权限

用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号 
u拥有者
g拥有者同组用
o其它用户
a所有用户 

上面的文件file.txt属性中拥有者权限rw-所属组权限rw-other权限r--。现在我们想让拥有者也有运行权限就可以进行一下操作

 要想删除拥有者的运行权限即可

要想给拥有者、所属组、other全部提供运行权限即可

 举一反三那么删除所有的运行权限只需要将+改为-即可。

那我想将拥有者、所属组、other的全部权限全部增加应该怎么办

全部操作也有比较快捷的办法

就是在后面直接加a(-/+) 想要删除或加入的权限即可给所有种类的用户进行权限操作。

但是权限这个东西我们有这个权限但是不一定能够执行这时为什么呢能够访问权限要有两个条件

1.必须要有可执行的权限

2.必须要有可执行的属性 

如果没有可以执行的属性即使有可执行的权限也是不能执行的。

就如我们不能在中进行看电影的行为。

但是root账号是超级账号当拥有者或所属组中没有root时但是root还是可以进行访问。所以对于root而言就几乎没有权限都是开放的 

最后还有一种修改权限的方法就是利用8进制进行修改。rwx可以用8进制表示为7那么用三位就可以分别表示三种用户的权限情况。比如777就是三种用户都是rwx权限。

我们的需求可以修改二进制然后转为8进制进行改变。

比如拥有者权限-w-所属组权限rwxother权限r-x。那么三种用户用二进制表示为010、111、101。转成8进制每位代表一个数为2、7、5。那合起来就是275。  上图就是我们想要的结果


以上就是我们本次的全部内容对大家有帮助的一健三连支持一下博主

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux