Linux文件权限

来源:互联网 发布:linux mkfifo 编辑:程序博客网 时间:2024/06/05 06:18

Linux最优秀的地方之一,就在于它的多用户、多任务环境。而为了让各个用户具有较保密的文件数据,文件的权限管理就变得很重要了。Linux一般将文件可存取访问的身份分为3个类别,分别是owner、group、others,且三种身份各有read、write、execute等权限。若管理不当,你的Linux主机将会变得很不舒服;

1.文件属性

    由于在linux下一切皆文件,因此文件的属性就变得尤为关键起来,一个文件的属性决定着你可以如何操作这个文件。首先使用使用ls中的a和l参数(具体参照ls –help)来显示所有文件的属性和权限
这里写图片描述

    这里我们可以看到存在七列数据,其中第一列为当前文件的类型和与权限,可以看到所有文件不计算”.”的话统一为10个字符,其中第一个字符表示的即为这个文件的属性

若是[-]则是文件,例如上图的test2.
若是[d]则是目录,例如上图的test1和test3。
若是[l]则是连接文件,类似于windows下的快捷方式。
若是[b]或[c]则分别是块设备文件(如硬盘)和字符设备文件(如打印机、键盘等)。
若是[s]则是套接字文件。
若是[p]则是管道文件。

      值得一提的是在linux中还是存在和windows一样的文件后缀名的,但其主要的作用还是清晰的告诉用户该文件的使用方法,可以说是决定了文件属性的一部分。

    接下来的字符中,以三个为一组,且均为“rwx”的三个参数组合。其中[r]代表可读[read],[w]代表着可写[write],[x]代表可执行[execute]。其位置不会改变,如果没有相对应的权限则会在对应位置显示[-]。而三个组分别代表了文件所有者的权限、同用户组的权限、其他非本地用户组的权限。

    接着是第二列中的连接数,每个文件都会将它的权限和属性记录到文件系统的i-node(基础文件系统)中,不过我们在使用的目录树却是使用文件名记录的,因此每个文件都会连接到一个i-node。这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。关于i-node的只是体系太过庞大,这里不做赘述。

    第三列为所属人,第四列为所属组,第五列为容量大小,默认大小为B。
第六列为文件创建日期或是最近修改时间,当一个文件被修改的日期距离现在太久了时会只显示年份,否则具体显示到时分。

   最后一列为文件名,其中有一类文件比较特殊,在之前多一个”.”,这时表示该文件为隐藏文件,因此我们在显示时用到了ls的-a参数,将隐藏文件也同时显示了出来。

2.改变文件属性和权限

chgrp: 改变文件所属组

   改变所属组较为简单,change group缩写的指令chgrp+新用户名组+文件名就可以改变,需要注意的是,新用户名组必须要在/etc/group文件内存在才行,su切换到超级用户以root用户组作例。

这里写图片描述

chown: 改变文件所有者

   类比改变所属组,改变所有者就是change owner的简写chown,当然用户必须是已经存在于系统中的账号,也就是在/etc/passwd中有记录的用户才行。使用chown+新用户+文件名就可以进行修改了。当使用参数-R时还可以进行递归调用,对目录文件内所有文件进行统一修改。

这里写图片描述

chmod: 改变权限

   文件的权限共有9个,分别是owner、group、others的read、write、execute,当我们用3个一组并用2进制表示的时候,read、write和execute可以写成000,若有对应权限则为1,这时我们就可以将单个所属者的权限表示为一个数字,因此对应的有两种改变权限的方法:数字类型和符号类型。

数字类型:chmod+对应权限+文件名
这里的对应权限就如我们上述一般,例如现在有一个文件权限为rwx-wx–x,则对应权限数字表示法应该是731。如果我们要将其权限改为–xr-x-rwx则应该为chmod+157+文件名

这里写图片描述

符号类型:

chmod u
g
o
a +(加入)
-(除去)
=(设置) r
w
x 文件或目录

这里u就表示user,g表示group、o表示others、a表示all即3者全部,假设我们设置3个用户权限都只为-w-

这里写图片描述

再让user和others加上r权限

这里写图片描述

3.权限对于文件和目录的意义

权限对文件的意义

r(read): 可读取此文件的实际内容,如读取文本文件内的文字内容;
w(write):可以编辑、新增或者是修改该文件的内容(不包括删除文件);
x(execute):可以被系统执行的权限。

权限对目录的意义

r(read contents of directory):具有读取目录结构列表的权限:表示可以查询该目录下的文件名数据;
w(modify contents of directory):可写入,此命令对于目录来说非常强大,因为其表示你可以更改该目录结构列表,即可以新建、删除、重命名和移动该目录下的所有文件;
x(access directory):表示用户能否进入该目录成为工作目录的用途,即可否cd进入;

在windows下操作时,系统会根据后缀名进行判断文件的读写以及操作属性,而在linux下则靠的是这个9个权限,因此在使用和修改时应多加小心,多多练习。

2 0
原创粉丝点击