博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 中权限控制实例
阅读量:5150 次
发布时间:2019-06-13

本文共 1089 字,大约阅读时间需要 3 分钟。

前言

  前文对 Linux 中的权限进行了较为透彻的分析。而本文,则在前文的基础上,具体说明如何在代码中进行权限控制

  下面的代码涉及到以下几个方面:

  1. 创建文件时设置文件权限

  2. 修改文件的默认权限

  3. 修改已创建文件的权限

  在阅读具体实现代码前,请先大致了解如下权限宏。

Linux 中的权限宏

代码实现

1 #include "apue.h" 2 #include 
3 4 #define RWRWRW (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) 5 6 int 7 main(void) 8 { 9 struct stat statbuf;10 umask(0);11 12 // 按照宏 RWRWRW 指定的权限创建文件 13 if (creat("foo", RWRWRW) < 0)14 err_sys("creat error for foo");15 // 修改默认权限 - 屏蔽掉创建文件的组读写和其他用户读写权限16 umask(S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);17 if (creat("bar", RWRWRW) < 0)18 err_sys("creat error for bar");19 20 // 获取文件权限信息21 if (stat("foo", &statbuf) < 0)22 err_sys("stat err for foo");23 // 在文件原来的权限信息的基础上,进行增加/删除权限。24 // 下面的示例删除了组执行权限并增加了设置组ID位。25 if (chmod("foo", (statbuf.st_mode & ~S_IWGRP) | S_ISGID) < 0)26 err_sys("chmod err for foo");27 exit(0);28 }

运行测试

  运行程序后,查看 foo 文件的权限,与预计相符:

  

小结

  Linux中设置状态位的方法大概都是用宏指定;删除状态位语法为原来的状态位 &~ 宏;增加状态位语法为原来的状态位 | 宏。

 

转载于:https://www.cnblogs.com/scut-fm/p/3653122.html

你可能感兴趣的文章
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
XML 解析---dom解析和sax解析
查看>>
Gamescom2014:中国游戏公司37.com进军西方海外市场
查看>>
ios新开发语言swift 新手教程
查看>>
有引用外部jar包时(J2SE)生成jar文件
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
什么是 开发环境、测试环境、生产环境、UAT环境、仿真环境
查看>>
科研需要兴趣和自信
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
循环引用 。 @class
查看>>
rabbitmq
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
Git 中README.md中MarkDown语法示例
查看>>
Android实现双进程守护
查看>>
IPC,Hz(Hertz) and Clock Speed
查看>>
C++ Primer 第二章 学习笔记
查看>>
List_统计输入数值的各种值
查看>>
Cocos2d-x 的“HelloWorld” 深入分析
查看>>
别让青春再浪费_个人经历
查看>>