栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言--文件权限管理,access函数和chmod函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言--文件权限管理,access函数和chmod函数

1,ls -l 打印出的权限列表
        (1)一共9位,3个一组。

            第一组:文件的属主 (这个文件是谁创建的,user)对该文件的可读、可写、可执行权限。
            第二组:文件属组所在的组 (group)对该文件的权限。
            第三组:其他用户(others)对该文件的权限。

        PS:文件创建之后还可以用chown命令去修改一个文件的属主,还可以用chgrp命令去修改一个文件所在的组。    

2,程序对文件操作的权限检查
        问题:
            一个程序被执行(./a.out),程序中试图去操作一个文件 test.txt;这时如何判定a.out是否具有对test.txt的操作权限?    

        判定方法:
            (1)test.txt 具有9个权限位,规定了3种人(user、group、others)对该文件的操作权限。
            (2)判定test.txt 是否能被 a.out 所操作,要搞明白a.out对1.txt到底算哪种人。(a.out 被谁执行)
    
3,access函数检查权限设置
    
        int access(const char *pathname, int mode);
    
            返回值:成功返回 0 , 失败,或者有某一权限被拒绝 返回 -1,并设置 errno
    
            功能:access函数可以测试得到当前执行程序的那个用户在当前那个环境下对目标文件是否具有某种操作权限。
    
            mode位判断 : F_OK tests for the existence of the file.  R_OK, W_OK, and X_OK test whether the file exists and grants read, write, and execute permissions,respectively.

            解释: F_OK :判定文件是否存在
                        R_OK, W_OK, and X_OK : 分别是 可读、可写和执行权限判定

伪代码:

ret = access(NAME, F_OK);
if (ret < 0)
{
    printf("文件不存在 n");
    return -1;
}
else
{
    printf("文件存在	");
}

4,chmod/fchmod与权限修改
    int chmod(const char *pathname, mode_t mode);
    int fchmod(int fd, mode_t mode);
    
5,chown/fchown/lchown与属主修改

    chown : 修改用户 chown root filename
    
    chgrp : 修改组

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433576.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号