目录
3.1改变权限的命令操作 chmod #change mode的缩写
4.1 Linux规定,目录/普通文件的起始权限分别是777,666
1.什么是权限
文件权限等于=角色+文件属性
其中,角色分为三类:
1.拥有者(owner) 2.所属组(grouper)3.其他人
以下①是拥有者 ②是所属组
所属组,是相当于在一个小团体里,这些所属组里边的人都可以访问,就相当于学习的小组
2.文件类型及权限
Linux下的文件类型与Windows的文件类型的表达方式有很大的不同
Windows下的后缀和Linux下的文件后缀有很大的区别
Linux下的文件后缀实际上并没有作用,只是为了方便用户进行,这里特指是Linux操作系统
但是一些编译工具对文件后缀有要求,比如gcc,必须要求是规定的例如(.c)后缀
区分
例如Linux下有一个可执行文件,test.exe,运行这个exe会输出"hello Linux!"如果把这个文件名改为test或者改为叫xyz,那么运行这个文件照样管用,照样跟test.exe的效果一样,实际上是一样的
在Linux下通过显示众多属性列中的第一个字符区分文件类型,如下图
①Linux文件类型:
首字符开头
- 普通文件(文本文件,代码源文件,可执行文件,压缩包...等等)
d 目录文件
c 字符设备文件(键盘、鼠标)
b 块设备(磁盘)
l 链接文件(快捷方式文件,比如Window下的桌面的图标)
p 管道文件
②剩余9个字符对应的含义:
如下图,以三个三个为一组,分别是拥有者(owner)、所属组(group)、其他人(other)的权限,对应权限没有的用“-”表示," r "表示拥有读的权限, " w "表示可以写,“x” 表示可执行
③文件权限值的表示方法(进制法)
在改变权限的时候,因为对应的位置不是存在就是不存在,因此可以用二进制转八进制码来表示,
例如 拥有者 所属组 other
1 1 1 1 1 1 1 0 1 ->对应了1可以读,1可以写,1可以执行,0则代表不可以,对应的八进制为775,则
eg:chmod 775 文件名 #同时改变了 拥有者权限,所属组,other的权限
3.如何操作权限
3.1改变权限的命令操作 chmod #change mode的缩写
① u代表用户本身的权限,user
② g代表所属组的权限 , group
③ o代表其他人的权限, other
④ a表示所有的人,包含,u,g,o
用例 eg:
chmod u-r 文件名 //改变拥有者权限,减去read (-r),减去了读的权限
chmod u+x 文件名 //改变拥有者权限,增加了可执行的权限+x
chmod g-rwx 文件名 //改变所属组的额权限,减去读(r)、写(w)的权限
chmod o+rwx 文件名 //改变其他人的权限,加上读(r), 写(w), 可执行(x)
chmod u+rw,g-wx 文件名 //可组合式,改变拥有者和所属组的
注意:组合式的必须按照顺序先后,比如ugo,uo,go,ug等顺序,必须保证先后顺序
3.2改变文件的角色
①改变文件的 拥有者 chown 如果是非root用户,给不了别人文件,这个拥有者无法变成比尔,但如果是root用户或者提权sudo给另一个人,那么可以强制改变文件的拥有者
②如果要改变拥有者和所属组 chown 用户1:用户2 文件名 用户1改为拥有者,2改为所属组
③改变所属组 chgrp 文件 ,改变所属组
3.3改变文件的角色
①改变文件的 拥有者 chown 如果是非root用户,给不了别人文件,这个拥有者无法变成比尔,但如果是root用户或者提权sudo给另一个人,那么可以强制改变文件的拥有者
②如果要改变拥有者和所属组 chown 用户1:用户2 文件名 用户1改为拥有者,2改为所属组
③改变所属组 chgrp 文件 ,改变所属组
4.关于目录/普通文件的起始权限的问题
4.1 Linux规定,目录/普通文件的起始权限分别是777,666
但是实际上与规定的有所不同,创建一个新的目录还有普通文本则是:
目录为 755,普通文件为644,这是因为在不同的机器或者系统上,会有一个默认权限掩码,对于所有的目录以及文件,都会在规定的起始权限下按位与(取反权限掩码)
最终权限=规定起始权限&(~权限掩码)
查看当前机器权限掩码的方式 umask(显示的为八进制序列)
那么可以理解为对于umask的话,因为要取反,就是不取反前,要去掉的对应的二进制位为1,要保留权限的位为0
则777&(~022)(八进制)==》755 ,666&(~022)==》644,则默认权限为规定的权限减去权限掩码后的权限
4.2更改默认权限掩码
umask xxxx(一个八进制序列)例如:0444,4的二进制位100,
那么代表在规定的777,666权限下,去掉每一个角色的读权限,创建新的目录以及普通文件,默认权限为333,222了
5.目录的rwx权限
对于目录的权限,目录的
-r 权限 #表示,去掉读的权限,就是不可以读取该目录的列表
-w权限 #表示去掉写的权限,就是不能创建新的文件
-x权限 #表示去掉执行的权限,就是你不能进入/cd该目录