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命令。

回避现实的人,未来将更不理想。

Linux下修改文件权限实例

相关文章:

你感兴趣的文章:

标签云: