文件权限是指对文件的访问控制,即哪些用户或群组可以访问文件以及执行什么样的操作。
一、文件的权限
1.Linux文件类型
(1)普通文件:文本文件+数据文件+可执行的二进制文件。
(2)目录文件:即文件夹,第一项以“.”作为它的文件名,第二项“..”表示该目录的父目录。
(3)设备文件:字符设备+块设备,在/dev目录下。
(4)链接文件:linux中为一个文件起多个名字的功能,称为链接。
上图中,ls-l输出信息的每一行的第一个字符代表文件类型。其中“-”表示普通文件,“d”表示目录文件,“c”表示字符设备文件,“b”表示块设备文件,“l”表示软链接(符号链接)文件。
2.文件的访问权限
(1)访问权限规定三种不同的用户
文件属主(owner):文件的所有者,称为属主。
同组用户(group):文件所属群组的同组用户。
其他用户(others):可以访问文件的其他用户。
(2)访问权限的表示
以上图第一行为例:
文件类型后的九位字符分别表示:文件属主 同组用户 其他用户
r(读权限) w(写权限) x(可执行权限)
数字4:表示文件的链接数
第一个root:表示文件的属主
第二个root:表示文件所属的群组
4096数字:表示文件的大小
Oct 2 15:48 :表示文件最后一次被修改的时间
a/a.txt:表示文件名或目录名
二、文件权限管理
1.chown 更改文件的属主和属组:chown [属主] :[属组] 文件列表
2.chmod 修改文件访问权限:chmod 模式 文件名
字母形式修改权限:chmod u+x,g-r,a=rw a.txt
u表示属主,g表示属组,o表示其他用户,a表示所以用户;+添加权限,-取消权限,=赋予给定权限并取消其他所有权限(如果有的话)。
数字形式修改权限:chmod 三位八进制模式 文件名
如:chmod 744 a.txt //更改a.txt文件的权限为111 100 100
3.三位特殊权限
用户置位s(SUID):进程继承命令拥有者的权限。
组置位s(SGID):目录的s权限使得在该目录下创建的任何文件及目录属于该目录所拥有的组。
粘着置位t(Sticky):在程序完成后在内存中保存一份运行程序的备份;目录拥有T权限后,只有该目录的所有者及root才能删除该目录。
占用执行权限位来表示,若执行权限开启添加特殊权限,则为小写字母,否则为大写字母。
两种方法设置特殊权限:
chmod u+s,g+s,o+t a.txt 字母形式设置特殊权限
chmod 1744 a.txt 数字形式设置特殊权限,4000,2000,1000
4.文件默认权限umask掩码
设置umask掩码来指定文件的默认权限,即新创建的文件所拥有的权限。
文件创建时的默认权限=0666-umask
目录创建时的默认权限=0777-umask
系统默认的掩码是0022,则文件默认权限为0644,目录默认权限为0755。
三、软链接和硬链接
1.硬链接
硬链接无法从最初的目录项中区分开,如上图中e.txt硬链接自a.txt文件,两者没有明显的区别,硬链接不能用于创建目录链接和在不同的文件系统中创建文件链接。
语法:ln 原文件名 [链接名]
如:ln /home/wxy/a.txt /home/mmx/f.txt //建立硬链接
若原文件被删除,链接文件依然存在,不会被同步删除;若更改任何一个文件内容,则其链接文件被同步更改。
2.软链接
软链接又叫符号链接,是将一个文件的路径名链接到另一个文件。包含要链接到的文件的名字,如上图d.txt软链接自a.txt文件,并且在符号链接之前那个文件不一定存在,软链接可以跨越不同的文件系统,并且可以创建目录间的链接。
语法:ln -s 原文件名 [链接名]
如:ln -s /home/wxy/a.txt /home/mmx/g.txt //建立软链接
若原文件被删除,软链接失效,类似于windows系统中的快捷方式,符号链接文件的大小是其链接文件的路径名中的字节数。