【Linux】Linux权限(上)

Hello everybody!在介绍完Linux操作系统常用的基本指令后,咱们就要开始权限的讲解了。如果没有看过我之前文章的宝子们可以去看看呦!有比较系统的指令讲解!

回到正题,关于权限,实际上没有大家想象中的那么神秘,权限在我们的日常生活中几乎无处不在。

比如:在QQ群,微信群中,群管理员,群主的权限就要比普通的群成员大。QQ音乐有了绿钻就有权听VIP歌曲。腾讯视频有了会员就有权跳过广告等等。

那么在Linux中的权限也大体类似。

【Linux】Linux权限(上)_第1张图片

1.普通用户&超级管理员

如果你买了云服务器,比如阿里云,华为云。那么你的账号的身份就是超级管理员,也就是root用户。

【Linux】Linux权限(上)_第2张图片

那么既然是超级管理员,它的权限和普通用户就是完全不一样的,自然有它特殊的地方。

比如说:

1.root用户可以创建普通用户。

2.root用户的家目录是/root。而普通用户的家目录是/home。

3.root用户的权利非常大,可以为所欲为,它几乎可以删除Linux系统中的全部文件,包括系统文件。而普通用户不可以。所以我们在使用root账号删除文件时务必小心谨慎。如果把Linux系统的根目录干掉了那么这个系统几乎报废了。

4.在Linux系统中,目前还没有发现root用户干不了的事情。

1.1root用户创建普通用户

【Linux】Linux权限(上)_第3张图片

1.2从root用户变成普通用户

【Linux】Linux权限(上)_第4张图片

直接su 用户名就可以了。需要注意的是,执行该指令后,你所在的路径没有变化,仅仅是身份发生了变化。

【Linux】Linux权限(上)_第5张图片

然后敲ctrl d可将身份回到root。

1.3从普通用户变成root用户

如果我本来就是一个普通用户,需要如何变成root用户呢?

【Linux】Linux权限(上)_第6张图片

【Linux】Linux权限(上)_第7张图片

其中一种方法是执行su root命令,同时需要输入root账号的密码(屏幕中不会显示),即可将身份从普通用户变成root用户。当然,敲ctrl d同样可以变回普通用户。

【Linux】Linux权限(上)_第8张图片

另一种方法就是执行su -命令,这时不光身份可以变成root用户,所在的路径也直接跳转到了root的家目录。就相当于直接以root身份登录账号。

不过不管以哪种方法将身份切换成root,都需要root账号的密码!

从上述讲解中可以看出,root变成普通用户不需要密码,普通用户变成root需要密码。由此可以看出root的权限是很大的。

2.文件的属性权限

【Linux】Linux权限(上)_第9张图片

现在我以root的身份创建一个文件。既然是文件,那应该也有对应的权限,不然随便一个用户来把这个文件改一下或是删掉那岂不是乱套啦?

这一条信息就详细地说明了当前文件的具体信息:

1.file.txt表示文件的名称。

2.Feb 4 16:36表示该文件最近创建或是修改的时间。

3.0表示文件的大小,单位是字节。

4.接下来是root root。那么连续的两个root是什么含义呢?

其实在Linux操作系统中有三种人,一种是文件的拥有者,一种是文件的所属组,一种是其他。

而第一个root表示文件的拥有者,第二个root代表文件的所属组。如果有一个用户比如说user_111,既不是拥有者也不是所属组,那就是其他。

Linux系统设置这三种人是为了用权限更好的管理文件,如果在一个大公司中,有2-3个小组在一台Linux机器上同时独立的做同一个项目,最后做的比较好的小组的成果被推销到市场。那么这些小组就是竞争关系,组内的文件肯定是不能给其他小组的成员看的。因此,为了方便管理文件,Linux操作系统有了所属组这个概念。上文中的第二个root就代表file.txt属于root分组。

5.最后-rw-r--r--一共有是个字符,开头的一个-表示文件的类型,如果是普通文件就是-,如果是目录文件就是d

【Linux】Linux权限(上)_第10张图片

如果创建一个目录,那么第一个字符就是d。

剩下9个字符,它们每三个一组,分别表示拥有者,所属组,其他对该文件所拥有的权限。每一组均为rwx。

对于普通文件:

r:表示是否具有读权限,如果是就是r,否,就是-。

w:表示是否具有写权限,如果是就是w,否,就是-。

x:表示是否具有可执行权限,如果是就是x,否,就是-。

3.修改文件的权限

在修改文件权限之前,我们需要搞清楚谁能够修改文件的权限。

1.该文件的拥有者可以修改。

2.root可以修改。

【Linux】Linux权限(上)_第11张图片

【Linux】Linux权限(上)_第12张图片

【Linux】Linux权限(上)_第13张图片

【Linux】Linux权限(上)_第14张图片

修改权限可用chmod指令。

u代表拥有者,g代表所属组,o代表其他,a代表所有人。

chmod后跟的选项可任意搭配,可以修改一种人的一个权限,一种人的多个权限,多种人的一个权限,多种人的多个权限!

4.使用权限

4.1使用普通用户测试权限

由于root是超级管理员,所以root不受权限限制,普通用户受权限限制。

【Linux】Linux权限(上)_第15张图片

下面我以普通用户的身份测试一下权限。

目前对于文件file.txt,user_111即是拥有者,也是所属组。对于拥有者,什么权限都没有。对于所属组,有读和写权限。

Linux系统在身份匹配的时候会优先匹配拥有者,然后才是所属组。若拥有者匹配成功且没有对应的权限,那么不会继续匹配所属组。

【Linux】Linux权限(上)_第16张图片

由此可以看出系统优先匹配拥有者,但没有读权限,所以系统直接拒绝打印文件内容。

同样的,没有写权限,系统拒绝往文件里写入内容。

【Linux】Linux权限(上)_第17张图片

同样也不可执行。

【Linux】Linux权限(上)_第18张图片

但是对于拥有者,我们加上了所有的权限,即可以写,也可以读。但奇怪的是,有可执行权限,为什么不可以执行呢?

注意可执行是有特殊要求的:

首先你要有可执行权限,其次你真的能够执行。

在我们举的例子中,file.txt是一个普通的文件,不是一个可执行文件,所以就算有了可执行权限也不可以执行!

4.2使用root用户测试权限

【Linux】Linux权限(上)_第19张图片

下面我用root身份测试权限。

【Linux】Linux权限(上)_第20张图片

首先,root可以更改文件的权限。这里,root把该文件的所有权限全部关掉了!

【Linux】Linux权限(上)_第21张图片

对于file.txt,root既不是拥有者,也不是所属组,而是其他。那么root既没有读权限,也没有写权限,更没有可执行权限。但是root可以打印该文件的内容!也就是说读权限无法限制root。

【Linux】Linux权限(上)_第22张图片

同样的,写权限也无法限制root。

【Linux】Linux权限(上)_第23张图片

但是这里要强调的是,不是可执行权限限制了root,而是file.txt压根就不是一个可执行文件。如果file.txt是一个可执行文件,root同样可以执行它!

【Linux】Linux权限(上)_第24张图片

并且更不要脸的是,file.txt根本就不是root的文件,但是root可以删掉它!这里也可以体现出root的权限非常大。

在Linux系统中,root就好比一个“老流氓”\(0^◇^0)/,没有root干不出来的事情,它不受权限约束!!!

5.总结

讲到这里,权限部分还没有讲完,这一篇文章只是介绍了普通文件的权限。我会在下一篇文章中接着介绍文件夹的权限和指令提权等内容,期待各位宝子们大驾光临!

总结一下权限存在的意义:

权限只是用来限制普通用户的,没有办法限制root。权限的意义是用来保证普通用户的文件的安全性。

你可能感兴趣的:(linux)