美文网首页
Linux的文件权限

Linux的文件权限

作者: 韧心222 | 来源:发表于2020-04-02 16:46 被阅读0次

参考《Linux就该这么学》《Linux就是这个范》《鸟哥的Linux私房菜》

Linux的文件权限大致可以分为4类,分别是:

  • 普通权限
  • 特殊权限
  • 隐藏属性
  • 访问控制列表(ACL)

1. 普通权限

普通权限就是最为常见的Linux的文件属性,使用命令ls -l就可以查看了,例如:

普通权限

其中第一个字符表示文件的类型,常见的包括:

  • -:普通文件
  • d:文件夹
  • l:链接文件
  • b:块设备
  • c:字符设备
  • p:管道文件

后面的9个字符以三个为一组,分别表示文件所有者、文件所有组和其他人的“读”、“写”、“可执行”权限,分别以rwx表示。对于文件而言,这三种权限比较明确,但是对于文件夹而言,其含义略有不同:

  • r:表示能够读取文件夹内文件的列表
  • w:表示能够在文件夹内新增、删除和重命名文件
  • x:表示能够进入该目录
    除了使用rwx来表示外,还可以用数字来表示,rwx对应于数字421,在上图中每个文件对应的普通权限分别为:600、755、755、755...

2. 特殊权限

在Linux有三种特殊权限,可以为Linux提供更加方便的文件管理,分别为SUID、SGID以及SBIT

2.1 SUID

SUID是让程序的执行者临时拥有程序执行者的权限,如果具备该权限,会将第一组rwx的最后一位变成sS,其中:

  • s:表示该文件具备x权限
  • S:表示该文件不具备X权限
    可以
  • 用命令chmod -R u+s <path>来赋权
  • 用命令chmod -R u-s <path>来除权

2.2 SGID

SGID的作用有两个:

  • 让文件的执行者临时拥有文件所属组的权限(对于可执行文件)
  • 让文件夹中的创建的文件自动继承该目录的用户组(对于文件夹)

如果具备该权限,会将第二组rwx中的最后一位变成s或者S,其中:

  • s:表示该文件具备x权限
  • S:表示该文件不具备X权限

可以

  • 用命令chmod -R g+s <path>来赋权
  • 用命令chmod -R g-s <path>来除权

2.3 SBIT

对一个文件夹设置了SBIT后,会使得该文件夹中的所有文件只能被拥有者所删除。

如果具备该权限,会将第三组rwx中的最后一位变成t或者T,其中:

  • t:表示该文件具备x权限
  • T:表示该文件不具备X权限

可以

  • 用命令chmod -R o+t <path>来赋权
  • 用命令chmod -R o-t <path>来除权

对于使用了特殊权限的文件而言,可以使用四位数字来表示,其中第一位表示SUID(4)、SGID(2)与SBIT(1)的和

3. 隐藏属性

文件的隐藏属性可以使用lsattr命令来查看,隐藏属性主要包括:

  • i:无法对文件进行修改;如果文件夹具备该属性,则只能修改其中子文件夹的内容,不能新建或删除文件
  • a:仅允许追加文件内容,无法覆盖和删除(对于日志文件比较好)
  • S:文件内容更新后,会立即同步到硬盘
  • s:彻底从硬盘中删除(磁盘充零)
  • A:不再修改这个文件或文件夹的最后访问时间(atime,我猜是access time)
  • b:不再修改这个文件或文件夹的存取时间
  • D:检查压缩文件中的错误
  • d:使用dump命令备份时忽略本文件或文件夹
  • c:默认将文件或文件夹进行压缩
  • u:当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
  • t:让文件系统支持尾部合并(tail-merging)
  • X:可以直接访问压缩文件中的内容

要想查看文件的隐藏属性,可以使用命令lsattr,要修改隐藏属性,可以使用chattr命令

4. 文件访问控制列表

  • 如果针对某个文件夹设置了ACL,则文件夹中的文件都会继承其ACL
  • 如果针对某个文件设置了ACL,则问价不再继承其所在目录的ACL

要想查看一个文件的ACL信息,可以使用命令

getfacl <path>

要想给一个文件/文件夹设置ACL,则需要使用命令

setfacl [参数] <path>

setfacl常用的参数包括:

  • -m 更改文件的访问控制列表
  • -b 删除访问控制列表
  • -R 递归操作子目录

例如:

setfacl -Rm u:linuxprob:rw- /root/anaconda-ks.cfg

可以为用户linuxprob对文件anaconda-ks.cfg添加读写的权限

setfacl -Rm g:linuxprob:r-x /root/anaconda-ks.cfg

可以为用户组linuxprob添加写和可操作的权限

如果一个文件被设置了ACL,那么在执行ls命令后则会看见普通权限后的原点变成了一个+

image.png

相关文章

  • 20170724 文件权限

    概要 linux文件权限linux文件特殊权限ACL 访问控制列表 一、linux文件权限 (一)linux文件属...

  • 文件和目录权限

    1、Linux权限介绍2、Linux文件属性3、如何改变Linux文件属性权限4、新建文件默认权限 1、Linux...

  • 获取文件权限

    检测linux下文件的权限 检测linux下多个文件的权限

  • Linux文件权限管理

    Linux文件权限管理 linux文件属性 改变权限 查看用户组

  • linux 权限不完全指南

    Linux 权限概述 本文主要介绍linux的: 文件权限 目录权限 默认权限 umask 隐藏权限 lsattr...

  • linux文件访问权限

    参考 Linux 简单修改权限命令 Linux权限详解 命令之 chmod:修改权限 Linux命令:修改文件权限...

  • 【目录】Linux命令集合

    1、Linux常用20个命令(for me)2、Linux 文件权限含义解析3、Linux 文件/目录权限命令:c...

  • Linux文章集合

    Linux文件权限

  • Linux 文件普通权限

    一、文件权限10个字符对应类型和权限 二、Linux普通文件和Linux目录读、写、执行权限说明 标注:Linux...

  • Linux文件权限

    本篇文章主要介绍Linux文件的权限 在介绍Linux文件权限之前,首先介绍Linux中几种角色 拥有者(owne...

网友评论

      本文标题:Linux的文件权限

      本文链接:https://www.haomeiwen.com/subject/gpotphtx.html