Linux中的权限管理命令-chmod

命令名称: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.

切记:删除一个权限的前提条件是对文件所在的目录有写权限。删除一个文件的前提条件不是对这个文件有写权限,对文件有写权限只能修改文件的内容。

猜你喜欢

转载自blog.csdn.net/i_love_xiao/article/details/80835604