本笔记主要介绍权限管理命令chmod

1. 权限管理命令:chmod
英文助记:change the permission mode of a file
语法:chmod [{ugoa} {±=} {rwx} 文件/目录] (u,g,o分别表示所有者,所属组,其他用户
-R 递归修改
1.1 chmod示例:
Linux常用命令(三)
解释:先用ls -l列出该目录下的详细信息,发现文件abc的权限为 rw-r–r--。这时,我想给所有者增加可执行权限x,因此采用命令 chmod u+x abc; 同时,也可以一次性加上多个权限,例如chmod g+x,o+x abc(给所属组和其他用户均加上可执行权限x,但是注意,要用逗号隔开)。

用加减赋值号表示固然方便,但是这种方式并不是经常采用,而是采用数字表示法:

r(读)—>4, w(写)---->2 x(执行)—>1
助记:权限分为“可读-可写-可执行”,若有哪个权限,就将哪个位记为1.例如,只拥有可读权限(r–, 100),将100转换成八进制,就是4,其他同理。
例如,假设某个文件的权限为 rwx rw- r–,则化成数字就是 764

问题:递归创建目录后,用chmod修改根目录权限,子目录权限会变吗?
示例:
先用mkdir -p /temp/a/b 在/temp目录下递归创建目录a和b(b是a的子目录)
Linux常用命令(三)
这时,查看a目录的权限:
Linux常用命令(三)
再改变a的权限:
Linux常用命令(三)
这时,再查看b目录的权限:
Linux常用命令(三)
并没有改变
所以,要想修改b的权限,就要使用递归来修改了:chmod -R 777 /temp/a
Linux常用命令(三)
问题:root用户在某目录下创建的普通文件,其他用户可以删掉吗???
示例:
root用户在/temp目录下创建了/c,在/c下创建了普通文件abc.txt:
Linux常用命令(三)
切换到之前创建的其他用户zhangsan进行删除:
Linux常用命令(三)
删除失败,提示权限不够。可能有的人已经认为,root创建的肯定删除不了。但是,再往下看,我将c目录的权限修改一下,为该目录加上写权限:
Linux常用命令(三)
这时,再用zhangsan删除:
Linux常用命令(三)
没有报错,删除成功。这是为什么呢?是因为没有对权限理解清楚,接下来我总结了一张表:
Linux常用命令(三)
因此结论是:删除文件的前提是对文件所在的目录有写权限。

相关文章: