Linux umask-- 设置文件和目录的默认权限

Linux系统中,umask命令用于设置新创建文件和目录的默认权限。普通用户和root用户的默认权限掩码分别为0002和0022。新文件默认权限为0666,目录为0777,实际权限会与此掩码相减得到。通过umask,可以控制所有者、组用户和其他用户的读、写、执行权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于新创建的文件和目录,系统会为它们设置默认的访问权限,命令格式: umask [value],value 是由4位数字组成的权限掩码:

[centos@laizili:/home/centos]umask
0002

[root@laizili centos]# umask
0022


以上是系统中 普通用户和root用户的默认权限掩码

新创建的文件的默认的权限为0666(也就是 rw-rw-rw-,所有者、属组、其他 拥有读写权限),目录的默认权限为0777(也就是 rwxrwxrwx,拥有全部权限),在创建文件时,系统先检查当前设置的umask值,然后把默认的权限值与权限掩码相减,就得到了新文件的访问权限,看例子:

[centos@laizili:/home/centos]touch testfile && ll testfile
-rw-rw-r--. 1 centos centos 0 Aug  8 21:03 testfile

# 文件默认权限为 0666,普通用户的umask为 0002,所以创建的文件新文件权限为 0664(即 -rw-rwr--)




[centos@laizili:/home/centos]mkdir dirtest && ll -d dirtest 
drwxrwxr-x. 2 centos centos 6 Aug  8 21:07 dirtest

# 目录默认权限为 0777,普通用户的umask为0002, 所以创建的新目录的权限为 0775(即 rwxrwxr-x)



[centos@laizili:/home/centos]umask 0022
[centos@laizili:/home/centos]touch testfile2; ls -l testfile2
-rw-r--r--. 1 centos centos 0 Aug  8 21:43 testfile2

# 修改umask后,默认创建的文件权限
#(注:umask只在当前登录的shell及其子shell生效,重启系统或登出shell umask将被还原为系统默认值,要想长期生效,需要修改相关配置文件)

附:

文件和目录权限的控制对象包括3类:所有者、组用户、其他用户;每个对象的权限位共三位依次代表 读、写、执行权限

权限数值说明
r4
w2
x1执行

 

例:

[centos@laizili:/home/centos/code/the_vim_way]ll hello.c 
-rw-rw-r--. 1 centos centos 62 Aug  7 18:57 hello.c

# 解释
# 从左往右依次看 第一个 - 代表这是一个普通文件
# rw-rw-r--为文件权限描述:
# 所有者centos(第一个)有用读写权限,组用户centos(第二个)拥有读写权限,其他用户只有读权限
# 这里权限位上的 - 代表无权限

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值