背景
工作中经常用到linux,对于一些知识需要进行总结。
文件属性
之所以会先说文件属性,是因为经常性的用到2个命令,其中一个是chmod +x 文件名称(给当前用户所拥有的这个文件赋予可执行权限) ,另一个是chmod -R 777 文件名称,-R代表文件夹下所有文件包括子目录的文件都会被赋予权限,以前并不明白777是什么意思,还有这两个有什么区别,所以索性找些帖子研究下。
linux系统
在linux系统中,用户是按照组分类的,一个用户属于一个或者多个组,文件所有者的以外的用户又可以分为和文件所属者相同的组,以及其他用户,不同的用户对于一个文件对应着不同的权限,在上面的截图中的deploy目录,它的拥有者对应着rwx,也就是可读,可写,可执行的权限,但是对于同组的成员只有r-x(读和执行的权限),对于其他人只能是—(什么权限也没有)
第一列代表着文件的类型
- 当为 d 则是目录
- 当为 - 则是文件;
- 若是 l 则表示为链接文档(link file);
- 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
2到10列对应着不同用户的权限
- r 代表可读权限,可用数字4表示
- w 代表可写权限,可用数字2表示
- x 代表可执行权限,可用数字1表示
其中的数字都是由linux规定的,三个为一组 ,第2到4位代表文件所有者的权限,5到7代表文件所有者的同组人员的权限,8到10代表其他人员的权限
所以777实际上就代表rwx(4+2+1) rwx(4+2+1) rwx(4+2+1)
chmod +x fileName 和 chmod [-R] 777 fileName
- chmod +x fileName 实际就是给当前用户文件的拥有者赋予可执行权限
- chmod 777 fileName 实际就是给文件的拥有者,以及同组人员,其他人员都赋予可读,可写,可执行权限
- chmod -R 777 fileName 实际就是给文件(包括文件的子目录文件)的拥有者,以及同组人员,其他人员都赋予可读,可写,可执行权限
- chmod -R 000 fileName 实际去掉文件(包括文件的子目录文件)的拥有者,以及同组人员,其他人员的可读,可写,可执行权限
- 同理也可以这样写 chmod 770 fileName 或者 chmod 700/710/712 等等