linux系统文件权限解析
1.权限基本知识
在linux中,所有的信息都是以文件形式存在的;linux之所以安全,很大意义上来源于对文件、用户和用户组权限的严格管理,说到文件那么肯定存在文件的所有者,也就是用户User,说到用户,就必须引入用户组Group,在linux中要求每一个用户必须存在于用户组中,不能独立于用户组存在。那么由此展开,权限即引申到用户组权限和用户权限。这里的用户权限一般指文件创建者所拥有的权限。
2.权限查看命令
linux中查看权限的命令: ls -l 或者 ll
解释一下结果信息,第一列包含dwxr字符的表示改文件的权限设置信息,具体每一项待会再讲,第二列表示文件数量,第三列表示文件拥有者(在没有变更所属的情况下是创建者),第四列表示拥有者所在用户组,第五列表示文件大小,第六列表示创建时间,第七列文件名。(ps:./
当前目录,’../
'上级目录)
列个表吧:
列名 | 权限信息 | 文件数量 | 拥有用户 | 拥有用户所在用户组 | 文件大小 | 创建时间 | 文件名 |
---|---|---|---|---|---|---|---|
例: | drwxr-xr-x | 3 | root | root | 4096 | Feb 27 22:21 | ./ |
3.权限信息解读
linux文件权限重要由4部分组成
- 文件类型(第1位),有三种d(directory)、-、l,d代表文件夹,-代表一般文件,l代表软连接(相当于windows中的快捷方式)
- 拥有者User权限(第2-4位):由rwx组合
- 拥有者所在用户组Group权限(第5-7位):由rwx组合
- 其他用户组Other权限(第8-10位):由rwx组合
这里需要解释一下rwx组合,r(read)读权限,w(write)写权限,x(exec)执行权限。
同时在设置linux权限也可以用数字表示,这时以8进制标识,即范围0-7,与rwx对应规则为r=4,w=2,x=1,rwx即4+2+1=7。在表示文件权限时格式为abc(eg:777,755),a代表文件所有者权限,b代表同组用户权限,c代表其他用户权限。
举个栗子:
1、一个文件夹所有用户用户组都拥有所有权限。
权限代码为d rwx rwx rwx,用数字表示777(4+2+1,4+2+1,4+2+1),意味着所有用户用户组都拥有该文件夹的读、写、执行权限。
2、一般文件只有拥有者和拥有者所在用户组拥有权限,拥有者有所有权限,拥有者所在用户组只有读和执行权限,其他用户组用户没有权限。
权限代码为- rwx r-x —,数组标识为750(4+2+1,4+0+1,0+0+0);
4.权限设置
chmod 命令
有两种形式;
1.数字命令。eg:chmod 777 xxx(文件名,下同)
2.用户组+组合符+rwx权限组合。eg:chmod u=rwx xxx
用户组标识有四种:
- u 代表拥有者User
- g 代表拥有者所在用户组Group
- o 代表其他用户组 Other
- a 代表所有用户
标识符有三种:
- +号代表增加权限
- -号代表移除权限
- =号代表设置权限
通过不同组合可以设置各种权限。
举个栗子:
chmod a+r xxx; // 为所有用户增加读权限
chmod o-rwx xxx; // 移除其他用户组的读写和执行权限
chmod u=rwx,g=rx xxx; // 设置拥有者权限为读写执行,拥有者权限组为读和执行。