之前讲过为了统一开发环境生产环境以及更换开发机器的情况,我把环境统一由Vagrant
部署在Linux
的虚拟机中,但是由于我对Linux
系统没有系统的学习过,对于环境的部署也仅仅通过谷歌等刚刚入门,所以在具体的开发中我还是经常在Linux
中遇到问题,经常求教老大。看着老大熟练的把玩Linux
,我也下定决心要把Linux
掌握好。
经自己了解,《鸟哥的Linux私房菜》一书备受推崇,于是于半个月前购入,开始拜读学习。在日常的工作时间之外,断断续续的学习着,确实受益匪浅,厚厚的一本书现在才看了四分之一左右,决定还是抽出时间记录一下自己曾经对于Linux
感到困惑的一些事情。
今天就来说说Linux
中文件权限的一些门门道道。
当初我在部署第一个Laravel
项目到阿里云的时候,在部署完成后,看到教程中要给storage
文件设置权限,当时这个777 775等这种数字简直把我弄迷糊了。只能对照着命令乖乖的敲进去,神奇的是敲进去之后,果然问题解决了,站点能访问了。感觉甚是困惑。看完书中的文件权限一章之后,才发觉Linux
中文件权限的神奇。
查看文件权限的语句:
# 在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)
# 那么就会出现相类似的信息,主要都是这些:
-rw-rw-r--
一共有10位数
其中: 最前面那个 - 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r-- 代表的是其他人(other)
然后我再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
现在该说说修改文件权限了
在终端输入:
chmod o w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ------------4
w -----------2
x ------------1
- ------------0
行动:
表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限
当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
常用的权限修改命令:
- chgrp :改变文件所属群组
- chown :改变文件拥有者
- chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
改变权限, chmod
文件权限的改变使用的是chmod这个指令,但是,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。我们就来谈一谈:
数字类型改变文件权限
各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
在讲解清楚了这种权限分值的累加之后,再去体会自己当初敲入命令行中的数字,是不是恍然大悟了呢。不知道你们是不是,反正我是这样的。今天小小的知识点就记录到这里,下次有时间再更新咯。