最近搞了一批权限最小化的问题,这里专门进行一下linux下文件权限的总结,其实非常简单。
在介绍linux下文件的情况,需要先介绍一个概念,用户、用户组。
和win一样,linux也是需要用户才能登录的。不同的是在linux中,还存在一个概念:用户组。也就是当前用户所属的属组。为什么要引入这样一个看似无用的用户组呢?这主要是为了在linux下,团队协作的方便。每一个用户都有属于自己独特的权限控制。但是有时候,有一些公有的文件或文件夹,这个你也用,我也用,但是我们并不希望所有人都能用。(防盗连接:本文首发自 )于是就搞出了一个所属组的概念。我们可以仅针对这个所属组添加权限。这样这个所属组中的所有用户均拥有对这个文件的操作权限。
下边再来看看文件权限的控制。
无论是用户还是用户组,权限均只由三部分组成
读(read):r
写(write):w
执行(execute):x
如文件f的所属用户权限可以设置成:
rwx:代表的是当前用户拥有读、写、执行三个权限。
r-x:代表的是当前用户拥有读和执行权限。(注意:一般执行脚本会设置成这样的权限)
记住读、写、执行的顺序是固定的,对应的权限如果没有则使用-(横线来替代该位)。
而对于计算机使用人员来说一个位置如果存在数据,我们通常使用1来代替,没有则使用0来代替。
因此:
r-x等于0b101换算后就是5
rwx等于0b111换算后就是7
---等于0b111换算后就是0
而文件的权限,如下图,由三个方面设定:
当前文件所属用户的权限。
当前用户所属用户组的权限。
其他用户的权限。
注意三者的顺序也是固定的。
如上图当前文件的总权限也就是
r--rw-r-x,换算成数字就是4(r--)6(rw-)5(r-x)
通常来说,一个文件拥有777权限,指的就是所属用户、所属用户组、其他用户均拥有rwx权限。
文件权限
ls
-l中显示的内容如下:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
- 1 表示连接的文件数
- root 表示用户
- root表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
改变权限的命令
chmod 改变文件或目录的权限
chmod 755 abc:赋予abc权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限
chmod a+r abc:给所有用户添加读的权限