Welcome 微信登录

首页 / 操作系统 / Linux / Linux下修改文件权限实例

Linux下使用umask()函数来改变系统文件权限。我们先将系统权限屏蔽改为0222,然后新建文件观察新文件的访问权限,接着将系统的权限屏蔽改为0002,然后再新建文件file2观察其访问权限,最后再将系统权限屏蔽改为0022,新建文件file3观察其访问权限。#include<sys/stat.h>
#include<sys/types.h>
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    mode_t new_mask,old_mask;
    new_mask=0222;
    old_mask=umask(new_mask);
    printf("file1.... ");
    printf("old mask is %#o ",old_mask);
    printf("nwe mask is %#o ",new_mask);
    system("touch file1");
    new_mask=0002;
    old_mask=umask(new_mask);
    printf("file2.... ");
    printf("old mask is %#o ",old_mask);
    printf("new mask is %#o ",new_mask);
    system("touch file2");
    new_mask=0022;
    old_mask=umask(new_mask);
    printf("file3.... ");
    printf("old mask is %#o ",old_mask);
    printf("new mask is %#o ",new_mask);
    system("touch file3");
    return 0;
}在这个实例中先将系统的权限屏蔽为0222,所以新增的文件file1的访问权限为0444,也就是-r--r--r--。接着将系统的权限屏蔽为0002,所以新增文件file2的访问权限为0664,也就是-rw-rw-r--。最后将系统的文件权限屏蔽为0022,所以file3的访问权限为0664即-rw-r--r--。(注意系统默认新建文件的访问权限时0666,新建目录的访问权限是0777,用这个值减去umask的值就是新文件或目录的访问权限。)其中system("");是用来运行shell命令。Ubuntu下make menuconfig出错问题解决Ubuntu系统较全面清理相关资讯      Linux系统教程 
  • Linux系统教程:修复“ImportError  (08/17/2015 07:50:43)
  • 正在经历变革的 Linux 系统管理员  (08/14/2014 09:49:42)
  • Linux系统教程:定制5M的RedHat 5.  (05/18/2013 14:49:49)
  • Linux系统教程:Ubuntu桌面上禁用  (06/07/2015 14:01:48)
  • 新电脑+旧系统:教你在不同机器间  (07/04/2013 06:51:32)
  • Linux系统教程:自动删除n天前日志  (03/25/2013 19:10:16)
本文评论 查看全部评论 (0)
表情: 姓名: 字数