文件与目录的默认权限与隐藏权限

  1. 文件默认权限:umask,umask就是指定“目前用户在新建文件或目录时候的权限默认值”
    查看方式有两种,一种直接输入umask,就可以看到数字形态的权限设置分数,需要注意的是umask的分数指的是“该默认值需要减掉的权限”。文件与目录的默认情况如下:
    (1)若用户创建“文件”,则默认没有可执行(x)权限,即只有r、w这两个选项,也就是最大为666
    (2)若用户新建“目录”,由于x与是否可以进入此目录有关,因此默认权限均开放,即为777
  2. 文件隐藏属性chattr,lsattr
    chattr [+-=][ASacdistu] 文件或目录名称 (设置文件的隐藏属性) 参数:
    +:增加某一个特殊参数,其他原本存在参数则不动
    -:删除某一个特殊参数,其他原本存在参数则不动
    =:仅有后面接的参数
    a:当设置a之后,这个文件将只能增加数据,而不能删除和修改数据,只有root可以设置这个属性
    i:设置i之后,可以让文件“不能被删除、改名,设置连接也无法写入或删除数据”,对于系统安全性有很大帮助,只有root可以设置这个属性
    lsattr [-adR] 文件或目录 (显示文件隐藏属性)
    使用chattr设置后,可以利用lsattr来查看隐藏的属性
  3. 文件特殊权限:
    (1)SetUID
    当s标志出现在文件所有者的权限上时,此时s称为SUID的特殊权限,SUID的限制与功能有:
    SUID权限仅对二进制程序有效,不能够用在shell script上
    执行者对于该程序需要具有x的可执行权限
    本权限仅在执行该程序的过程中有效
    执行者将具有该程序所有者的权限
    (2)Set GID
    当s标志出现在用户组的x时则称SGID,与SUID不同的是,SGID可以针对文件或目录来设置,对于文件,SGID的功能如下:
    SGID对二进制程序有用
    程序执行者对于该程序来说需具备x的权限
    执行者在执行的过程中将会获得该程序用户组的支持
    当一个目录设置了SGID权限后,它将具备以下功能:
    用户若对此目录具有r和x的权限时,该用户能够进入此目录
    用户在此目录下的有效用户组将会变成该目录的用户组
    若用户在此目录下具有w的权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同
    (3)Sticky Bit
    SBIT目前只针对目录有效,SBIT对于目录的作用是:
    当用户对于此目录具有w,x权限,即写入权限时,当该用户在该目录下创建文件或目录时,仅有自己与root才有权利删除改文件
    如果需要更改SUID、SGID、SBIT的权限时,只需要在传统的三个权限数字前再加上一个数字就代表这几个权限了:4为SUID,2为SGID,1为SBIT。当然我们也可以使用符号法来处理,SUID为u+s,而SGID为g+s,SBIT为o+t
  4. 查看文件类型:file ,通过这个命令我们可以简单地先判断这个文件的格式为何

命令与文件的查询

  1. 脚本文件名的查询:
    (1)which(寻找“执行文件”)
    这个命令是根据PATH这个环境变量所规范的路径去查询“执行文件”的文件名,重点在于找出执行文件,且which后面跟的是完整的文件名,若加上-a参数,则可以列出找出的所有同名可执行文件,而非第一个
    (2)whereis(寻找特定文件) whereis [-bmsu] 文件或目录名
    whereis命令速度比find块很多的原因在于linux会将系统内的所有文件都记录在一个数据库文件里面,而使用whereis或者locate时,都会以该数据库文件中的内容为准,有时候我们甚至还能找到已经被删除的文件,也找不到最新创建的文件
    (3)locate
    locate [-ir] keyword
    locate的使用更为简单,直接在后面输入“文件的部分名称”后就能得到结果。不过由于locate经由数据库来进行查找,而数据库的创建默认是每天执行一次,不过我们可以手动更新数据库,使用updatedb命令即可
    (4)find
    find [PATH] [option] [action]
    利用find可以加入许多参数来直接查询文件系统,以获得自己想要知道的文件名

权限与命令间的关系

  1. 例如cd等切换工作目录的命令所需权限:
    用户对这个目录至少需要具有x的权限
    额外权限:如果用户想要在这个目录下使用ls命令则还需要有r权限
  2. 用户读取一个目录下文件的命令比如cat,more,less等所需基本权限:
    目录所需权限:至少具有x权限
    文件所需权限:至少具有r权限
  3. 用户可以修改一个文件的基本权限:
    目录所需权限:至少具有x权限
    文件所需权限:至少具有r,w权限
  4. 用户可以创建一个文件的基本权限:
    目录所需权限:用户在该目录要具有w,x的权限,重点在w
  5. 用户进入一个目录并执行该目录下的某个命令的基本权限: 目录所需权限:至少需要x权限
    文件所需权限:至少需要x权限