linux文件权限管理及目录内容查询

目录

一、文件操作时的权限检查规则

st mode中记录的文件权限位

ls -1打印出权限列表

access函数检查权限设置

二、修改文件权限

使用chmod命令修改

chown/ fchown/lchown与属主修改

umask与文件权限掩码

三、读取目录文件

opendir与readdir函数 

四、可重入函数介绍


一、文件操作时的权限检查规则

st mode中记录的文件权限位

st mode本质上是一个32位的数(类型就是unsinged int),这个数里的每一个位表示一个含义。
文件类型和文件的权限都记录在st_mode中。我们用的时候使用专门的掩码去取出相应的位即可得知相应的信息。


ls -1打印出权限列表

权限位共9位,3位为一组。第一组分别表示文件的属主对该文件的可读、可写、可执行权限;第2组表示文件的属主所在的组(group)对应的权限。

一个程序a.out被执行, a.out中试图去操作一个文件1.txt,这时候如何判定a.out是否具有对1.txt的某种操作权限呢?

判定方法基本是:首先1.txt具有9个权限位,规定了3种人(user、group、 others )对该文件的操作权限。所以我们判定1. txt是否能被a.out来操作, 关键先搞清楚a.out被谁执行,也就是当前程序(进程)是哪个用户的进程。

access函数检查权限设置

文本权限管控其实较为复杂,一般很难明确知道自己是否对一个文件具有某种权限。设计优秀的软件应该是:在操作某个文件之前先判断当前是否有权限进行此操作,如果有,操作就可以进行,没有则提供错误信息给用户。
access函数可以测试得到当前执行程序的用户在当前环境下对目标文件是否具有某种操作权限。

access具体手册描述如下:

根据手册描述,主要用法为int access(const char *pathname,int mode),第一个参数为文件名路径,第二个参数已给出,有F_OK,R_OK,X_OK,W_OK。

二、修改文件权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕逾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值