一、Linux中的文件及文件目录的常见权限
1、
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r(读取) | 可读取文件内容 | 可列出目录内容 |
w(写入) | 可修改文件内容 | 可在目录中创建和删除内容 |
x(执行) | 可作为命令执行 | 可访问目录内容 |
注意:目录必须要有 x(执行)权限,否则都无法查看其内容 |
2、Linux权限的授权,默认的是授权给三种角色:分别是user(属主 U)、group(属组 G)、other(其他人 O)
Linux的权限与用户之间的关联如下:
- U代表user(属主)、G代表group(属组)、O代表other(其他人)
- 每个文件的权限基于UGO进行设置
- 权限三位为一组(rwx),同时需授权给三种角色:U(属主)G(属组)O(其他人)
- 每个文件拥有一个所属用户和所属组,对应UGO,不属于该文件所属用户或所属组的使用O来表示
以上图的pcre-8.35文件介绍各个参数的代表的含义:
第1段位 | 第二段位 | 第二段位 | 第四段位 | 第五段位 | 第六段位 | 第七段位 | 第八段位 | 第九段位 | 第十段位 | 第十一段位 | 第十二段位 |
d | rwx | rwx | r-x | 7 | Raix | Raix | 8192 | Apr | 4 | 2014 | pcre-8.35 |
文件类型 | 文件拥有者权限(U) | 文件所属组权限(G) | 其他人权限(O) | 文件链接数(文件下包含的子目录数量(包含隐藏文件)) | 文件拥有者 | 文件所属组 | 文件大小(默认单位为字节(byte)) | 时间(月) | 时间(日) | 时间(年或时刻) | 文件名 |
- 第1段位:文件类型
-:普通文件,比如使用touch等命令创建的文件、图片文件等等
l:符号链接文件
d:目录
s:套接口
p:管道文件
c:这表示字符设备文件,比如猫等串口设备。
b:这表示块设备,比如硬盘、光驱等设备。 - 第2段位(U):文件拥有者,rwx分别表示可 r表示读、w表示写、x表示执行
- 第3段位(G):文件所属组,r-x分别表示可 r表示读、- 表示没有这个权限、x表示执行
- 第4段位(O):其他用户,r-x分别表示可 r表示读、- 表示没有这个权限、x表示执行
- 第5段位:文件的链接数量,也可以理解为这个文件下有的子文件数据,7表示该文件下有7子目录文件(第一位为d的文件目录)
- 第6段位:文件拥有者,Raix表示该文件为用户Raix所有
- 第7段位:文件所属组,Raix表示该文件为用户组Raix所有
- 第8段位:文件大小,默认单位为byte(位),若使用 ls -h查看,则 k(kb)、m(mb)、g(gb)不显示表示位(b)
- 第9-第11段位:表示该文件的创建或最新的一次修改时间
- 第12段位:文件名称,如果是链接文件,则文件名为符号 " -> " 左边,符号右边为链接到的文件
注意:访问目录或者文件时,对于普通用户权限:上级目录权限权限决定子目录的权限、上级目录没有权限,那么当前目录中也就没有权限,当前目录中的文件也就访问不了
二、文件的默认权限和特殊权限(出于安全考虑,Linux一般默认下是文件是没有执行权的)
1、二进制和十进制的换算
r | w | x |
1 | 1 | 1 |
4(2的2次方) | 2(2的1次方) | 1(2的0次方) |
4 + 2 + 1 = 7(满权限就可以通过数据7进行设置),776 = rwxrwx rw-(2个7代表UG的满权限,后面的6表示O的权限为rw-)
如:rw-rw-r-- = 664 rwxrw--wx = 763 rwxr--rwx = 747 rwxr-xrwx = 757
例如我们更改一个文件的权限:
2、文件的默认权限和特殊权限
- Linux的目录默认权限为755,而文件的默认权限为644(Linux目录的最大满权限为777,Linux的文件最大满权限为666)
- 每一个Linux终端都拥有一个umask属性,umask属性可以用来确定新建文件、目录的默认权限,默认系统权限掩码为:022
目录权限 777 - 022 = 755 文件权限 666 - 022 = 644 默认的文件和目录权限 减掉 umask值才是真实的文件和目录的权限
执行umask命令可以查看当前默认的掩码,umask -S 023 可以把默认的权限掩码设置为了 023
- umask码的各个不同数字代表的含义
- umask码的计算方法(也就是有的去掉,没有的留下),比如:
引用于群里的朋友发的截图,我也不知道出自何处,若有侵权请联系删除
- 当umask为 022 时,我们创建的文件和目录的权限就是:
目录:777(rwxrwxrwx) - 022(----w--w-) = 755(rwxr-xr-x)
文件:666(rw-rw-rw-) - 022(----w--w-) = 644(rw-r--r--) - 当umask为 025 时,我们创建的文件和目录的权限就是:
目录:777(rwxrwxrwx) - 025(----w-r-x) = 755(rwxr-x-w-)
文件:666(rw-rw-rw-) - 025(----w-r-x) = 642(rw-r---w-) - 当umask为 053 时,我们创建的文件和目录的权限就是:
目录:777(rwxrwxrwx) - 053(----r-x-wx) = 7(rwx-w--r--)
文件:666(rw-rw-rw-) - 053(----r-x-wx) = 642(rw--w-r--)
3、特殊掩码
- SUID:SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
- SGID:主要实现如下两种功能
a、让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
b、在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)