40_Linux下的文件权限管理

st_mode中记录文件的权限位

st_mode本质上是一个32位的数,类型其实就是unsigned int,这个数里的每一个二进制位表示一个含义

我们使用的时候使用专门的掩码取出需要的标志位

ls -l打印详细列表


文件类型和权限列表  注意日期是建档日期

文件操作时的权限规则

讲真,文件访问操作,不仅与文件的属性有关,还与访问者的权限有关,分别判断很繁琐,用一个函数判断有没有访问权限就是access调用

最好养成一个好的习惯,就是操作文件时,最好先看一下有没有访问这个文件的权限

#include <stdio.h>
#include <unistd.h>


#define NAME  "a.txt"
int main(void)
{
	int ret = -1;
	
	ret = access(NAME, F_OK);
	if(ret < 0)
	{
		printf("文件不存在\n");
		return -1;
	}
	else
	{
		printf("文件存在  ");	
	}
	
	ret = access(NAME, R_OK);
	if(ret < 0)
	{
		printf("不可读 ");
		return -1;
	}
	else
	{
		printf("可读 ");	
	}
	
	ret = access(NAME, W_OK);
	if(ret < 0)
	{
		printf("不可写 ");
		return -1;
	}
	else
	{
		printf("可写 ");	
	}
	
	ret = access(NAME, X_OK);
	if(ret < 0)
	{
		printf("不可执行\n");
		return -1;
	}
	else
	{
		printf("可执行\n");	
	}
	return 0;
}


chmod 更改文件权限的命令,只有root用户可以进行操作

chmod的命令其实使用chmod的API实现的

也就是API才是所有的基础


示例代码

#include <stdio.h>
#include <sys/stat.h>


#define NAME  "a.txt"
int main(int argc,char **argv)
{
	int ret = -1;
	
	if(argc != 2)
	{
		printf("usage :%s filename\n", argv[0]);
		return -1;
	}
	
	ret = chmod(argv[1], S_IRUSR | S_IWUSR | S_IWUSR);//只给uer属主所有权限,别人的什么都不给
	if(ret < 0)
	{
		perror("chmod");
		return -1;
	}
	else
	{
		printf("argc :%d \n", argc);
		printf("argv[0] :%s \n", argv[0]);
		printf("argv[1] :%s \n", argv[1]);	
	}
	
	return 0;
}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
头歌Linux是一种基于Linux内核的操作系统,它采用了类Unix的文件权限管理机制。文件权限管理是指对文件或目录进行访问控制和权限设置的过程。在头歌Linux中,每个文件或目录都有三种基本权限:读取权限、写入权限和执行权限。以下是头歌Linux文件权限管理的介绍: 1. 文件权限表示方式: - r(读取权限):表示可以读取文件内容或查看目录中的文件列表。 - w(写入权限):表示可以修改文件内容或在目录中创建、删除文件。 - x(执行权限):表示可以执行文件或进入目录。 2. 文件权限组合: - 文件拥有者权限文件的所有者对文件具有特定的权限。 - 文件所属组权限文件所属组的成员对文件具有特定的权限。 - 其他用户权限:除了文件拥有者和所属组成员外的其他用户对文件具有特定的权限。 3. 文件权限设置: - 使用chmod命令可以设置文件或目录的权限。例如,chmod 755 file.txt表示将file.txt文件的拥有者设置为可读、可写、可执行,所属组和其他用户设置为可读、可执行。 - 使用chown命令可以修改文件或目录的拥有者。例如,chown user file.txt将file.txt文件的拥有者修改为user。 - 使用chgrp命令可以修改文件或目录的所属组。例如,chgrp group file.txt将file.txt文件的所属组修改为group。 4. 文件权限查看: - 使用ls命令可以查看文件或目录的权限。例如,ls -l file.txt将以长格式显示file.txt文件权限信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值