您的位置:首页 > 运维架构 > Linux

linux文件权限说明(五)默认权限

2020-07-15 04:56 66 查看

 我们一般新建一个目录或者文件时都会有一个默认的权限,如图
这就跟umask有关。

 umask的显示方法很简单,直接输入umask时显示由数字表示的默认权限值

 输入umask -S则以字符的方式显示默认权限
显示的是创建的文件或目录的所有权限,而非umask值

 umask后面带有-p参数且未带权限值时,则会像这样的格式显示
 注意,umask由数字表示时,第一位应该恒为0,它代表后面是一串八进制数字。如果强行要更改它为非0,那么就会报错

 umask用来指定新建文件或目录时的权限默认值,而且它是以补码的方式来指定的。也就是说一个文件在创建时它的所有权限应该是rw-rw-rw-或666(通常创建文件默认没有x权限),如果这时候umask值是0022也就是----w–w-,那么创建后的文件实际权限就应该是减去umask之后的值,rw-r–r--也就是644。

 创建目录时也是同样的道理,创建目录时它的所有权限应该是rwxrwxrwx或777,如果这时候umask值是0022也就是----w–w-,那么创建后的目录实际权限就应该是减去umask之后的值,rwxr-xr-x也就是755。

 umask的设置方式与基本权限类似,基本上分为两种,第一种umask后面使用0加三位八进制数字,0可以省略,系统会默认为八进制输入。后面的三位八进制数字为(user、group、others)权限分别求和,其中r=4,w=2,x=1。

 第二种则使用字符的方式,其中u代表user、g代表group、o代表others、a代表all,’+‘用来在原有基础上增加权限;’-‘用来在原有基础上去掉权限;’='用来直接设定权限。三种权限分别写作r、w、x。

 但是值得注意的是,使用字符的方式设定umask的时候,我们设定针对的其实是目标文件的权限,而不是直接设定umask的值。例如,一开始如果umask值为0000,这时候我们使用umask u-r之后,意思是在目标文件的所有者权限字段减去r权限,所以umask值变为0400。

 以上的设置方式只能改变当前会话的umask值,如果想要永久改变umask值,则需要修改/etc/profile或/etc/bashrc或者~/.bashrc。打开文件添加一行umask 0022,不需要时在该行行首添加#或者删除该行即可。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: