命令名称:chmod
英文原意:change the permissions mode of a file
执行权限:所有用户
语法:chmod [{ugoa}{+-=}{rwx}][文件或目录]
[mode=421][文件或目录]
-R 递归修改
功能:修改目录或文件的权限
u:user(所有者) g:group(所属组) o:other(其他人) a:all(所有人) r:read(读) w:write(写) x:execute(执行)
如上图所示,对于文件test.txt,文件所有者有读写权限,文件所属组和其他人就很只有读的权限。
假如现在修改文件的权限,修改为所有者只有读的权限,所属组有读和写的权限,其他人什么权限都没有。
一般写法:输入chmod u-w,g+x,o-r test.txt
日常写法:chmod 460 test.txt
在linux权限管理中,r对应4,w对应2,x对应1,所以460=r-- + rw- + --- =4+(4+2)+0=460
假如现在再次修改权限,让所有用人都有执行权限
chmod a+x test.txt 或 chmod 571 test.txt
选项-R实际上是递归修改权限,如:我们用mkdir -p /tmp/a/b 在目录/tmp下递归创建a目录,并在a目录下创建b目录,然后再目录b下创建目录c和文件c.txt,那么这个时候来查看目录a,b的权限,两个目录的权限是一样的
那么现在将目录a的权限设为777,然后观察目录a,b的权限情况,可以看出目录a的权限改为777了,不过目录b并没有改变,想要在同时修改目录a和目录a下的所有目录和文件的权限是,就得用到-R来递归修改权限。
输入:chmod -R 777 /tmp/a ,结果可以看到,目录a包括目录a下的所有文件或目录的权限都变为777了。
注意点:rwx对于文件和目录来说有不同的含义
举个例子:验证root用户创建的普通文件,普通用户能不能删除?答案是肯定的
之所以普通用户能删除root用户创建的文件,是因为文件test.txt所在的目录的权限为777,也就是说目录/temp对于用户grid来说,是可写的,所以能删除掉文件test.txt.
切记:删除一个权限的前提条件是对文件所在的目录有写权限。删除一个文件的前提条件不是对这个文件有写权限,对文件有写权限只能修改文件的内容。