权限基础理论:
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档 ( link file );
若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
权限模型
r w x
4 2 1
owner group others
rwx — —
a 所有用户
数值组成:
421=7
42-=6
4–=4
-2-=2
修改文件权限使用chmod命令,changemod
数字方式修改:
chmod —(3位数字,每一位的值不能超过7,而且这个值是4、2、1任意一种或者多种的组合,1,2,4,1+2,1+4,2+4,1+2+4) 文件名
字母方式修改:
chmod
更改文件9个属性
chmod ugo(u代表user,g代表group,o代表others,添加或者减除权限使用+/-,结合权限的英文字母缩写read®,write(w),execute(x))
chmod u+r file
chmod g-w file
chmod a+x file
chown:修改用户属主,也可同时修改用户属主和数组
chown 选项 属主:属组 文件名
chgrp: 修改用户属组
chgrp 选项 属组 文件名
-R参数实现递归修改,即目录下的文件也被同时修改
只有文件的属主或特权用户(root)才可改变它的组
权限管理
1、对文件而言
权限 | 说明 |
---|---|
r | 可获取文件的数据(cat) |
w | 可修改文件数据(vi) |
x | 可以将此文件运行为进程 |
#文件权限判断逻辑
判断用户对文件的权限:
前提条件:用户能够成功进入到文件所在的目录,即对操作的文件所在目录有x权限
例:这个test/目录,other即使有w权限(无x权限)不能在test/目录中删除、创建、修改文件
当删除文件或创建文件:看用户是否具备对目录的w权限
无论用户是以属主、属组还是其他身份,均需看用户是否具备对目录的w权限
修改文件:看用户是否具备对修改的文件的w权限
无论用户是以属主、属组还是其他身份,只需看此文件是否有w权限(与目录的权限无关)
2、对目录而言
权限 | 说明 |
---|---|
r | 可以使用ls命令获取其下的所有文件列表 |
w | 可修改此目录下的文件列表;及创建或删除文件 |
x | 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息 |
注意 x 才可cd 所以一般目录都有x权限 和r同时出现
目录有w权限 才可删除目录下面的文件
判断用户对目录的权限
前提条件:用户能够成功进入到目录所在的目录,及对操作的目录所在的目录有x权限
例:想要删除、创建、修改test/目录下的test/dir/目录,前提条件是对test/目录有x权限
删除目录、创建目录:看用户是否具备对上一级目录的w权限
无论是上一级目录的属主、属组还是其他用户,均需看上一级目录权限中是否有w权限
修改目录(在目录下创建、删除文件):看用户是否具备对修改的目录的w权限
无论是目录的属主、属组还是其他用户,只需看目录权限中是否有w权限(与上一级目录的权限无关)