在Linux系统下常用的文件目录权限管理命令有chmod, chown, chgrp,umask,一直以来都在用,但是没有太注意它们的区别,今天就在这篇文章做个总结。
目录
作用:修改某个目录或文件的访问权限
语法: chmod [ugoa...][[+-=][rwxX]...][,...]
拥有者,所属组,其他人表示:
u代表文件的拥有者,g代表与文件的拥有者属于同一组(group)者,o代表其他以外的人,a表示ugo所有
+ - =含义:
+:表示增加权限
-:表示去下权限
=:表示设定权限
常用参数:
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 递归修改其下的文件和子目录
--help : 显示辅助说明
--version : 显示版本
举例:
对当前目录下所有的文件及目录修改为777权限,777代表ugo有全部权限
sudo chmod -R 777 *
对所有人赋予目录logs全部权限
sudo chmod -R 777 logs
关于权限可以用如下表清晰呈现:
作用:修改某个目录或文件的用户名和用户组
语法:chown [用户] [文件或目录]
常用参数:
-R:对所有子目录下的文件也都进行同样的操作,也就是递归修改
-h:改变符号链接文件的属主时不影响该链接所指向的目标文件
举例:
将文件hello.txt的拥有者改为tiger
chown tiger hello.txt
递归将目录logs的拥有者修改为tiger
sudo chown -R tiger logs
作用:修改文件或目录的所属组
语法:chgrp [用户组] [文件或目录]
常用参数:
-R:对所有子目录下的文件也都进行同样的操作,也就是递归修改
举例:
将目录logs所属组改为tiger
chown tiger logs
作用:查看文件的权限掩码(掩码:就是已有码的相反值)
语法:umask
常用参数:
-S:以文字的方式来表示权限掩码