Linux系统我们知道是开源的,这样有利于我们全世界的程序员们高效的实现系统的完善化,但“林子大了什么鸟都有”总有一些人以为误触或其他因素去对系统进行非法访问,因此这时就需要权限这个名词了。
我们学习linux后,知道“linux中一切皆文件”,那linux系统的文件权限就是我们的学习重点
首先我们要知道,文件分为什么:
1.普通文件 ****
2.目录文件 ****
3.块设备文件
4.字符设备文件
5.管道文件
6.链接文件
我们这里最常用的就是普通文件(-)和目录文件(-d)。
文件的内容+属性
文件的属性权限一般有三种:1.r 读 2.w 写 3.x 可执行程序
1.快速掌握修改权限的做法:
1)chmod u-r filename "u"代表拥有者,"g"代表所属组,"o"代表其他人
chmod u+rw filename
chmod a+r filename "all"代表所有人
2)前一个方法我们要输入操作对象,较为麻烦,因此我们的linux操作系统就添加了一个默认权限掩码"umask",不同的虚拟机可能值不一样,但大多数为0002,为什么呢,将0002的源码求其补码,然后与操作的进制码进行按位与操作,得到的即我们创建的“664”,要求拥有者,所属组可以进行读写操作,但其他人只有读的权限。
因此,我们可以 chmod 000 filename 控制进制码来实现对用户的权限约束
2.对比权限有无,表现:
首先,linux系统对用户身份识别只进行一次,如果你是使用者,不会再识别你这个用户名是否也是所属组,这一点我们需要特别注意
root账号为超级管理员,他不受权限的约束
而普通用户受权限的约束,因此root用户可以直接改文件的拥有者和所属组,但普通用户却可以,这就要用到我们前面讲的,sudo chown gaobo:xioaming file.txt
3.删除一个文件和目标文件有关系吗?
没关系
在同一个目录文件下,我们创建两台虚拟机,对其内文件进行操作,不论这个文件是否具有w的权限,只要目录文件有w权限,我们就可以对该目录文件下的所有文件进行修改,新建,删除操作。
4.可执行权限 vs 可执行
可执行=有可执行权限+该文件为可执行文件
5.如果我们想在linux下,有多个用户建立一个共享文件,来别大家访问怎么办?
在linux系统搞定普通用户下,相互之间是不允许共同访问一个文件,这时因为我们在“/home”的路径下,所以我们可以在非“/home”下创建文件来实现共享
6.文件类型
在windows中会通过后缀来区别文件类型,但是linux中不通过后缀类型来区分文件类型,但有同学问:"gcc test.txt"却没法运行,我们要知道gcc不属于linux系统,它只是其一个工具,linux的工具又不一定不会识别后缀
ok,讲到这里权限的绝大多数内容就讲完了,大家要多敲一敲,消化知识!