zoukankan      html  css  js  c++  java
  • Unix文件权限

    Unix/Linux系统中,对文件(包括目录)的权限有一套完整的管理机制。这样的机制保证了系统的安全性。本文主要对Unix/Linux系统中的权限管理进行介绍。

    一:文件类型

    Unix系统中主要有7种文件类型,分别是普通文件(regular file,包括文本文件和二进制文件,在Unix中文本文件和二进制文件没有本质的区别,可执行文件就是二进制文件,二进制文件需要满足一定的格式才可以被内核解析执行),目录文件,块特殊文件和字符特殊文件(块特殊文件提供对设备带缓冲的访问,字符特殊文件提供对设备不带缓冲的访问),FIFO(用于进程间通信,也称为命名管道),套接字(用于进程间网络通信),符号链接(指向另一个文件的文件)。

    二:读取文件信息

    Unix系统在<sys/stat.h>文件中提供访问文件信息的函数,主要包括stat,lstat,fstat,fstatat四个函数,stat函数利用文件名获取文件相关信息,将获取的信息放入stat结构中。stat结构也在<sys/stat.h>中定义。同时头文件中定义了一系列宏可以用来验证文件的类型,stat结构中的st_mode字段可以用来判断文件类型。其原理是将st_mode与屏蔽字做按位与操作,然后与特定的表示文件类型的屏蔽字做对比,相等则表明是相关的文件类型。

    三:文件访问权限

    Unix文件中标识文件权限的位有12位,从低位到高位的前9位为普通的权限位,分别表示其他用户,组用户,文件所有者用户的rwx权限。对所有类型的文件而言,rwx权限都是有效的。除了这9位之外,还有3位,分别是设置用户ID位,设置组ID位,粘着位。(粘着位是较老的概念,一些较常使用的程序的文本副本可以保存在交换区,这样下次可以较快的将程序读入内存,粘着位是标识是否将副本放置到交换区的位。)同时还有设置用户ID位和设置组ID位,一个可执行的文件可能可以被非文件所有者的用户执行,此时,程序可能需要文件所有者的权限才可以访问程序中需要用到的资源,这时如果设置了设置用户ID位则可以将程序(进程)的有效用户ID设置为程序所有者的ID,如果设置了设置用户组ID位,则可以将进程的有效用户组ID设置为程序的用户组ID。使用ls –al命令时,只会显示一个十位的文件信息,第一个位为标识文件类型的位。其余9位位为标识文件所有者,组用户,其他用户权限的位。标识设置用户ID位是通过在文件所有者权限位的x位显示的,当x位为s时,x和设置用户ID 位被设置,为S时,x位未被设置,设置用户ID位被设置。设置用户组ID位是通过组用户权限的标识为x标识的,其中同时设置了设置用户组ID 和用户组执行位则为s,只设置了用户组ID为S。

  • 相关阅读:
    【工具篇】抓包中的王牌工具—Fiddler (2-工具介绍)
    SQL注入攻击的常见方式及测试方法
    Xshell访问和连接Linux
    【户口篇】换房过程中,户口怎么迁移?
    【计算机篇】二维码解析、短地址生成器
    【工具篇】Sublime Text 2/3 安装汉化破解、插件包安装教程详解
    【通用】登录功能测试用例
    【工具篇】接口测试神器 -- Postman 入门教程
    【生活篇】微信运动刷步,高达98000!微信运动计步作弊教程!
    关于The C compiler "arm-none-eabi-gcc" is not able to compile a simple test program. 的错误自省...
  • 原文地址:https://www.cnblogs.com/libs5510/p/4793193.html
Copyright © 2011-2022 走看看