Linux--设置目录或文件的默认权限:umask权限掩码

目录起始权限是从777,普通文件起始权限从666

为何我们创建一个目录或文件,默认权限是你所看到的样子?

因为凡是在umask中出现的权限,都不应该在最终权限中出现!

最终权限=起始权限&(~umask)

已知:umask为0002,我们默认它是002

对目录:

对文件:同理

故我们想修改目录或文件的起始权限,可以通过设置umask的值来实现

示例:

①使文件或目录默认权限为000

在函数中,为了确保函数设置的对应文件权限就是设置的权限,通常会将umask设为0,让umask无法再起作用:

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
  umask(0);//防止掩码影响最终生成的文件权限,故设为0
  int fd = open("log.txt",O_WRONLY|O_CREAT,0666);//既创建又写入,创建log.txt并默认权限为rw-rw-rw-
  if(fd < 0)
  {
    perror("open");
    return 1;
  }
  //open success
  printf("open success,fd: %d\n",fd);

  return 0;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值