歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下修改文件權限實例

Linux下修改文件權限實例

日期:2017/2/28 15:30:13   编辑: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....\n");
printf("old mask is %#o\n",old_mask);
printf("nwe mask is %#o\n",new_mask);
system("touch file1");
new_mask=0002;
old_mask=umask(new_mask);
printf("file2....\n");
printf("old mask is %#o\n",old_mask);
printf("new mask is %#o\n",new_mask);
system("touch file2");
new_mask=0022;
old_mask=umask(new_mask);
printf("file3....\n");
printf("old mask is %#o\n",old_mask);
printf("new mask is %#o\n",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命令。

Copyright © Linux教程網 All Rights Reserved