作者|CDADataAnalyst一、概述Linux系统是一个典型的多用户系统。不同的用户处于不同的位置,具有不同的权限。Linux系统为了保护系统的安全,对不同用户访问同一个文件(包括目录文件)的权限有不同的规定。搭建大数据集群时操作不当,往往会出现文件属性错误导致的问题,所以这里需要大家重点学习和理解。2、文件的基本属性在Linux中,我们可以使用ll或ls-l命令来显示文件的属性。如图,在我们Ubuntu虚拟机的hduser用户家目录下的终端中执行命令ls-l。例子中普通文件的第一个属性用“d”表示。“d”表示该文件在Linux中是一个目录文件。在Linux中,第一个字符表示文件是目录、文件还是链接文件等。第一个字符可以有以下值:d:表示这是一个文件目录,-:表示这是一个文件,l:表示一个链接文件(linkfile)。你可以理解为windows下的快捷方式b:表示为设备文件中可供存储的接口设备(随机存取设备);c:在设备文件中表示为串口设备,如键盘鼠标(一次性读取设备)。之前学过Linux用户管理,应该对用户和用户组不陌生。对于一个文件,它有一个特定的所有者,即拥有该文件所有权的用户。同时,在Linux系统中,用户是按组划分的,一个用户属于一个或多个组。文件拥有者以外的用户可以分为与文件拥有者同组的用户和其他用户。Linux系统根据文件拥有者、与文件拥有者同组的用户、其他用户,规定了不同的文件访问权限。用户对某个文件有什么权限,主要由后面的字符决定,这三个字符为一组,都是“rwx”三个参数的组合。其中,[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute)。需要注意的是,这三个权限的位置是不会变的。如果没有权限,会有一个减号[-]。每个文件的属性由左边第一部分的10个字符决定(如下图)。从左到右使用数字0-9。第0位决定文件类型,第1-3位决定所有者(文件的所有者)有文件的权限,第4-6位决定组(所有者的同组用户)有权限文件的权限,第7-9位确定其他用户对文件的权限。其中,第1、4、7位数字表示读权限,如果用“r”字符表示则有读权限,如果用“-”字符表示则无读权限;第2、5、8位代表写权限,如果用“w”字符表示,则表示有写权限,如果用“-”字符表示,则没有写权限;第3、6、9位代表可执行权限,如果用“x”字符表示,表示有执行权限,如果用“-”字符表示,则没有执行权限。如何查看文件的所有者和所属组?继续以虚拟机hduser主目录下的public文件为例,如下图所示:上例中public文件为目录文件,属主为hduser,属组为hadoop,而所有者具有可读、可读、写入和执行权限;与所有者同组的其他用户有读取和执行权限;其他用户也有读取和执行权限。对于root用户,文件权限一般对其没有影响。3、更改文件属性只要权限足够,就可以修改文件的这些属性权限。在我们虚拟机hduser的主目录下创建一个文件目录a,后续的操作都在a目录下进行。创建和查看a目录的操作流程如下图所示:3.1、chgrp:改变文件组语法:chgrp[-R]属性组名文件名参数选项-R:递归改变文件属性组,即即,在改变目录文件的属性组时,如果加上-R参数,则该目录下所有文件的属性组都会改变。更改文件a的属主组为hdusersudochgrp-Rhdusera查看某个目录的属主组是否已更改为hduser3.2,chown:更改文件的属主,也可以更改文件的属主组同时语法:chown[-R]所有者名文件名chgrp[-R]所有者名:所有者组名文件名将目录a的所有者更改为hadoop用户sudochown-Rhadoopa之后查看目录a的属性执行命令,属主已经变为hadoop结果如下图:目录a的属主和属组恢复原状sudochown-Rhduser:hadoopa执行过程如下图所示,目录a的属主和属组恢复原状3.3、chmod:改变文件的9个属性Linux文件的属性有两种设置方法,一种是数字,一种是符号。Linux文件的基本权限有九种,分别是owner/group/others,每一种都有自己的读/写/执行权限。先回顾一下刚才的数据:该文件的权限字符为:“-rwxrwxrwx”,这九个权限是三个一组!其中,我们可以用数字来代表各个权限。每个权限的分数对照表如下:每个身份(owner/group/others)的三个权限(r/w/x)分数需要累加。比如当权限为:[-rwxrwx---]则得分为:owner=rwx=4+2+1=7group=rwx=4+2+1=7others=---=0+0+0=0所以等等我们在设置权限更改时,文件的权限号是770!chmod改变权限的命令语法如下:chmod[-R]xyz文件或目录选项及参数:xyz:就是刚才说的数字类型的权限属性,是rwx属性值的累加。-R:进行递归(recursive)连续改变,即子目录下的所有文件都会被改变。如果要启用文件a的所有权限,那么命令如下:sudochmod-R777a执行命令完成查看a的属性值后,可执行文件也会在a中显示为绿色Ubuntu终端如下图所示。如果要将权限更改为-rwxr-xr--怎么办?那么权限的分数就变成了4+2+1[4+0+0]=754。还有一种方法可以更改权限哟!从前面的介绍我们可以发现,基本上这九个权限就是(1)用户(2)组(3)其他三种身份!那么我们就可以用u,g,o来代表三种身份的权限了!另外,a代表all,也就是所有的身份!那么读写权限可以写成r,w,x!即可以使用如下方法查看:例5,如果我们需要将文件a的权限设置为-rwxr-xr--,可以使用如下命令设置:sudochmodu=rwx,g=rx,o=ra执行命令后查看执行结果,结果如下图:如果想去掉权限而不改变已有的其他权限怎么办?例6、取消所有人的可执行权限,执行如下命令:sudochmoda-xa执行过程和执行结果如下图所示:朋友们,今天的内容就到这里了,还有很多配置需要做修改搭建大数据集群因此,在搭建集群之前,需要先给小伙伴们介绍一下Linux系统中常用的文本编辑器。这是下一篇文章的内容。更多优质内容,您可以前往:疫情当前,宅家也可以提升自己,为未来积蓄能量——蓄势待发!
