一、文件权限介绍
1.1权限位
Linux目录和文件的权限和所属用户,用户组关系很大,每个目录或者文件都有9个权限位。
[root@localhost ~]# ll
总用量 116
-rw-------. 1 root root 1110 5月 15 04:23 anaconda-ks.cfg
-rw-------. 1 root root 336 5月 15 10:20 keystonerc_admin
-rw-------. 1 root root 317 5月 15 10:20 keystonerc_demo
-rw-------. 1 root root 49573 5月 15 09:58 packstack-answers-20170515-095857.txt
-rw-------. 1 root root 49578 5月 15 09:58 tmp-packstack-answers-20170515-095856.txt
-rw-------
第一位就是表示文件类型的位,后面的9位就是权限位。
文件类型:-
代表的是普通文件。
属主,属组(用户组),其他用户, 权限位。 包括:读,写,执行。
user, group,other.
1.2权限位介绍
9个权限位,3位为一组,分别属于文件的用户(user),文件的属组(group),其他组(other),包括读,写,执行。
修改文件权限:
chmod o-r file_01.txt // 使用chmod命令对o(other)减去`read`权限对于`file_01.txt` 文件。
chmod o+w file_01.txt // other加write权限
下面是错误的,不能使用数字去代替权限
chmod o-7 a.txt
1)普通文件的权限位说明
可读:r
具有可读取文件内容的权限
可写:w
具有修改文件内容的权限(删除文件的权限,受父目录的权限控制)
可执行:x
具有执行文件的权限
2)目录的权限位说明:
可读:r
具有浏览目录内有什么文件的权限 ---浏览
可写:w
具有删除和移动目录内文件权限 ---修改
可执行:x
具有进入目录的权限 ---进入
chmod 的数字权限位表示法
r:4
w:2
x:1
-:0
权限数字位算法
如属主的权限是:r,w,x,则对应的数字=4+2+1=7
如属组的权限是:r,x,则对应的数字=4+0+1 = 5
如其它组的权限是:r,x,则对应的数字=4+0+1=5
属主:u
属组:g
其他组:o
所有: a
递归修改目录下面文件的权限
使用-R
参数,不能是小写。
遍历文件下面所有文件:
chmod 700 -R dir_2
注意:
echo '111'>b.txt
echo "111">b.txt
echo '111' > b.txt
三者效果一样
查看目录属性
ll -d dir_a // 查看dir_a 目录权限
总结:
修改文件权限和移动文件权限,要求有w,x权限都有,单独有w,或者单独有x,都不行。单独的w权限,没有作用。
注意:貌似我用root账户测试,上面的总结不对。
Linux文件与目录权限对比说明
r(Read,读取权限):
对文件(如oldboy)而言,表示具有读取阅读文件内容的权限。
对目录(如/etiantian)来说,表示具有浏览目录的权限(注意:与进入目录的权限不同)
w(Write, 写入权限):
对文件而言,表示具有新增,修改文件内容的权限。(注意:删除和移动文件和文件本身属性无关。)
对于目录来说:表示具有删除,移动目录内文件的权限。如果要在目录中创建文件或者目录必须有x权限。
x(Excute, 执行权限):
对文件而言,表示具有执行文件的权限。
对目录来说,表示具有进入目录的权限。
-:
若对应位置权限位为字符串“-”,表示对应用户没有读,写,执行的任何权限。
特别注意:
当删除或者移动一个文件或目录,仅与该文件与目录所在的上一层目录权限有关,与该文件本身属性无关,对于文件来说,写文件是修改文件,而不是删除文件,因此写文件是与改文件的本身属性有关系的。