Linux系统的目录与文件的属性及权限介绍与修改

Linux系统一切皆文件,了解文件与目录的相关属性是非常重要的。所以本次介绍一下文件与目录的相关属性与修改。Linux系统优秀地方之一,就在于它的多用户、多任务环境,而为了让各个用户具有较保密的文件数据,所以文件的权限管理就会变得非常重要,Linux系统一般将文件可存取访问的身份分为3种,分别是owner(拥有者)、group(组)、others(其他),且3种身份各有read(读)、write(写)、execute(可执行)等权限。

在介绍文件与目录的权限之前需要首先了解owner、group以及others这三个概念,其实很容易理解,比如你在你的公司里面,你写了一份你小组内的能查阅的保密的类型的资料文件,那么owner就是你,你小组就是group。不再你小组内的都是属于others。


好了,明白这三个概念之后我们就开始看看文件和目录的权限,虽然文件和目录的权限都有可读、可写、可执行这三种权限,但目录和文件拥有同样的权限所代表的意思可是不太一样的。首先我们先使用最常用的命令ls -al查看一下当前目录下的文件与目录的属性,如下:

Linux系统的目录与文件的属性及权限介绍与修改

ls -al

我们可以很比较清晰地有很多列内容,不过按照大体内容上可以分为七列,那就就是权限、连接数、拥有者与用户组、修改时间、文件名。我们拿license这个文件来做例子,如下图:

Linux系统的目录与文件的属性及权限介绍与修改

file example

下面先看第一列,如果你仔细看的话应该可以看到启动中共有10个字符,而这10个字符代表的是什么意思呢?其实除了第一个字符代表这个东东是文件或者目录又或者是连接文件之外,剩下的九个都是代表我们前面说到的三种身份的他们对这个文件拥有的权限,我们可以使用一个图形来将它概括起来,如下图:

Linux系统的目录与文件的属性及权限介绍与修改

权限


因为文件类型有蛮多的,所以下面用一个表格将它们一一罗列一下,如下图:

Linux系统的目录与文件的属性及权限介绍与修改

文件类型

说完第一列我们看第二列,这个是表示有多少文件名连接到此节点(i-node),因为每个文件都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node,这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。


第三、四列就相对简单了,就是该文件的拥有者与所属的用户组。

第五列就是表示该文件的容量的大小,不过要注意单位,默认是B。

第六列则是这个文件的创建日期或者是最近修改日期。

最有一列就是文件名了!


好了,弄清楚每一列以及权限的含义之后就不禁会想到如何去修改这些文件属性呢?在Linux系统里面提供有几种常用的方法去修改这些文件属性,如下图:

Linux系统的目录与文件的属性及权限介绍与修改

change

下面分别看看这三个命令的意义与用法,首先是chgrp,顾名思义就是修改文件所属用户组,所以改变一个文件的用户组非常简单,直接以chgrp来改变即可,这个命令就是change group的简称。不过要注意的是,要被改变的组名必须要在/etc/group文件内存在才行也就是Linux系统里面要存在有这个用户组,否则会显示错误。它的用法也很简单,所以下面就直接使用--help来做说明就好了,如下:

Linux系统的目录与文件的属性及权限介绍与修改

chgrp

既然改变用户组是change group那么改变所有者就应该是change owner,那就是chown这个命令的用途了,同样地要注意的是,用户必须是已经存在于系统中的账号,也就是/etc/passwd这个文件中有记录的用户名称才能改变。

chown的用途还是挺多的,它还可以顺便直接修改用户组的名称,此外如果要连目录下的所有子目录或者文件都同时更改文件所有者的话,直接加上-R的参数即可,下面看几个例子:

Linux系统的目录与文件的属性及权限介绍与修改

chown

这里告诉你们一个独特的用法,chown也可以使用chown user.groupfile,即在所有者与用户组间加上小数点也可以,不过很多朋友设置账号时,喜欢在账号当中加入小数点,这时候就会造成系统误判,所有一般建议使用冒号来隔开所有者与用户组,此外chown也能单纯地修改所属用户组呢。例如chown.sshd install.log就是修改用户组。

那什么时候使用chown或chgrp呢?最常见的例子就是在复制文件给你之外的其他人时,我们使用最简单的cp命令来说明,假如你要将一个文件复制给yunzhongmuge这个用户,但是由于cp会复制执行者的属性与权限,复制给yunzhongmuge这个文件还是属于你所有,如此一来,即使你将文件给了yunzhongmuge这个用户,但他还是无法修改的,所有你需要修改这个文件的所有者与用户组。

上面无论是chgrp或者是chown都是仅是涉及文件的所有权问题,那如何修改读写以及执行的权限呢?那就需要用到chmod这个命令,而权限分别可以使用数字或者是符号来进行修改。先看用数字进行设置,在Linux的文件的基本权限就有9个,分别是owner、group、others三种身份各有自己的read、write、execute权限,我们使用数字代表各个权限,个权限的数字分别是r:4、w:2、x:1。

每种身份(owner、group、others)各自的三个权限(r、w、x)的数字是需要累加的,如当一个文件的权限是(-rwxr-x---),则分数为owner=rwx=4+2+1=7、group=r-x=4+0+1=5、others=0+0+0=0所以这个文件的权限数字就是750。所以我们可以这样设置文件的权限:

[root@yunzhongmuge6 ~]# chmod [-R] xyz 文件或者目录

下面说下使用符号进行修改权限,我们从之前的介绍就可以知道,基本上就9个权限,分别是user、group、others这三种身份,那么就可以通过u、g、o来代表3中身份的权限,此外a代表all,也就是全部身份。那么读、写、可执行的权限就可以写成r、w、x,而如果要添加则使用加号、减去则使用减号,设置为则使用等号。例如我们想要设置一个文件的权限为(-rwxr-xr-x)则可以这样设置

[root@yunzhongmuge6 ~]# chmod u=rwx,go=rx test.txt

如果上面这个文件的group要添加写的权限,则可以这样:

[root@yunzhongmuge6 ~]# chmod g+w test.txt

而如果上面这个文件的others要去掉可执行的权限,则可以这样:

[root@yunzhongmuge6 ~]# chmod o-x test.txt


好了,本篇到此结束,good luck!

May you share freely, never taking more than you give.



分享到:


相關文章: