Linux 文件权限讲解(一般权限、特殊权限、隐藏权限、访问控制列表、Umask)

这篇具有很好参考价值的文章主要介绍了Linux 文件权限讲解(一般权限、特殊权限、隐藏权限、访问控制列表、Umask)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

文件的一般权限

一般权限有哪些

使用ls -l查看文件/目录权限

配置一般权限和文件所属信息

chmod 修改文件权限

chown 修改文件所属信息(所有者和所属组)

chgrp 修改文件所属组

文件特殊权限

SUID 针对所有者的特殊权限

SGID

SBID

配置特殊权限

umask 修改文件的权限掩码

umask介绍

如何通过umask得到文件/目录的默认权

修改umask值

文件的隐藏权限

chattr 配置/删除文件的隐藏权限

lsattr 查看文件的隐藏权限

文件访问控制列表权限

setfacl 管理文件的facl

getfacl 查看文件的facl


文件的一般权限

文件的执行者   执行文件的用户

文件的所有者   默认为创建文件的用户

文件的所有组   默认为创建文件的用户所属的用户组

一般权限有哪些

相同权限对于文件与目录所代表的含义会有不同

read 读取权限

对于一般文件  有此权限用户就可以读取文件内容(例如 cat命令)

对于目录       有此权限的用户就可以显示目录下的文件列表(例如 ls命令)

write 写入权限

对于一般文件  有此权限用户就可以编辑文件的内容(例如 vim命令)

对于目录        有此权限用户就可以在目录下新建、剪切、删除文件(例如touch、mv、rm等命令)

execute 执行权限

对于一般文件   有此权限用户就可以执行这个脚本文件(例如 . /脚本名 运行脚本)

对于目录        有此权限用户就能够进入到目录(例如cd命令 进入目录)

注意事项

W权限可以单独设置,只对文件进行写入操作 (通过重定向实现)

使用ls -l查看文件/目录权限

linux 文件权限,Linux,linux

内容字段分析

- --- --- ---七个字段(文件类型与文件权限)  root文件所有者   root文件所属用户组

-   代表文件类型(linux不通过后缀来区分文件类型)

--- 代表文件所有者的权限

--- 代表文件所有组的权限,归哪个组所有,那么在这个组里面的用户都有此权限(不论这个组是用户的基本组还是扩展组都可以)

--- 代表其它用户,不是文件的所有者,也不属于文件所有组的用户,则就为其它用户

例如:通过 drwxr-xr-x 可以得到以下信息

     d    此文件为目录文件

     rwx  所有者对此文件的权限为rwx

     r-x  所属用户组对此文件的权限为r-x

     r-x  其它用户对此文件的权限为r-x

.代表是是否有ACL扩展权限(.代表没有ACL扩展权限、+代表有ACL扩展权限)

1代表的是文件的链接数为1

第一个root代表的是文件的所属用户

第二个root代表的是文件的所属组(主组)

1383代表的是文件的大小

时间代表的是文件最后的修改时间

最后一位代表的是文件名

文件类型(属于文件属性)

-  一般文件(配置文件)

d  目录文件(文件夹)

l   链接文件(快捷方式)

p  管道文件(现在一般看不到)

b  块设备文件(硬盘、内存、光盘等)

c  字符设备文件(在/dev目录见的比较多)

权限与数字的对应关系

r = 4、w = 2、x = 1

rwxr-xr-x  所代表的数字为7(rwx)5(r-x)5(r-x)

使用数字的方式在进行权限配置时比较方便

配置一般权限和文件所属信息

chmod 修改文件权限

chmod 【参数】权限(数字形式) 文件名————对此文件修改权限

  -R  对目录下的所有文件与子目录进行相同的权限变更

  -c  如果文件权限已经更改了,才显示文件权限的变更信息

  -v  显示文件权限的变更信息(无论文件权限是否变更)

  -f  即使文件权限无法被更改也不显示错误信息

chmod 631 123  修改123文件的一般权限为rw--wx-x

linux 文件权限,Linux,linux

chmod -v 777 123 将123文件的一般权限更改为777,并 显示详细信息

linux 文件权限,Linux,linux

chown 修改文件所属信息(所有者和所属组)

chown 【参数】 文件所有者:文件所属组 文件名———修改文件的所有者和文件所属组

  老版(5)的chown命令:chown 文件所有者.文件所有组 文件名(使用.做间隔)

  -R  对目录下的所有文件与子目录进行相同的所属信息变更

  -c  如果文件所属信息已经更改了,才显示文件所属信息的变更信息

  -v  显示文件所属信息的变更信息(无论文件所属信息是否变更)

  -f  即使文件所属信息无法被更改也不显示错误信息

  -h  只对链接文件进行变更(而非真正指向的文件)

  --version  显示此命令的版本信息

linux 文件权限,Linux,linux

chgrp 修改文件所属组

chgrp 【参数】组名/组ID 文件名————修改文件所属组

  -R  递归处理(将目录下的所有文件都修改)

  -v   显示命令的执行过程

chgrp 100 admin1        将admin1对应的所属组设置为组ID为100的组

chgrp admin2 admin1   将admin1对应的所属组设置为admin2组


文件特殊权限

文件特殊权限是对一般权限的补充(由于管理员不受一般权限的控制,可以通过特殊权限来控制)-特殊权限会对管理员生效

SUID 针对所有者的特殊权限

设置此特殊权限后,所有者的执行权限字符用s或S表示(不用x或-表示)

s和S的区别如下

在配置特殊权限时,如果文件所有者没有执行权限,则配置SUID特殊权限后,文件所有者对此文件的执行权限为S(即如果所有者的权限为r--,配置suid特殊权限后,权限为r-S)

在配置特殊权限时,如果文件所有者有执行权限,则配置SUID特殊权限后,文件所有者对此文件的执行权限为s(即如果所有者的权限为r-x,配置suid特殊权限后,权限为r-s)

针对文件设置SUID权限

会让此文件的执行者临时获取到文件所有者的权限来完成某些工作

SUID必须只能是设置在二进制的可执行文件、脚本上,无法设置到目录上

SUID权限举例

/etc/shadow文件  保存的是用户的密码信息

我们发现用户没有此文件的权限,但是可以通过passwd修改密码, 这个是怎么做到的呢

linux 文件权限,Linux,linux

我们是通过passwd命令来修改名密码的,而passwd的命令文件的所有者执行权限为s

这个s就指的是命令的SUID权限,当某个用户执行passwd命令的时候,他就临时获取到passwd文件所有者的权限

passwd文件所有者是管理员,而管理员不受一般权限控制,所以用户可以通过passwd更改密码;如果用户不使用passwd,则由于用户没有权限,无法修改命令

linux 文件权限,Linux,linux

SGID

设置此特殊权限后,文件所属组执行权限为s或S(不用x或-表示,s和S的区别类似SUID)

针对文件设置SGID权限

让命令的执行者可以临时获取到文件所有组的权限来完成某些工作( 基本上不会使用)

SGID针对文件权限类似于SUID,只不过SGID使得用户临时获取用户组的权限

针对目录设置权限

目录下新建的文件的所有组,会自动继承目录的所有组,一般会把SGID的权限设置到目录上面

正常情况,新建文件的所有者和所有组都是自己(即使用新建命令的命令执行者)

SGID针对目录设置权限举例

在管理员下创建/etc/abc目录,并为此目录配置SGIB权限

linux 文件权限,Linux,linux

然后登录到admin用户下,在/etc/abc目录下创建文件和目录,发现文件和目录的所属组都继承了/etc/abc的所属组,都为root

linux 文件权限,Linux,linux

SBID

设置此特殊权限后,文件的其它用户的执行权限为t或T(不用x或-表示,t和T的区别类似SUID) SBID可以称为保护位

针对文件或目录设置SBID

设置SBID特殊权限后,就可以确保用户只能够删除自己的文件,而不能删除其它用户的文件

root不受特殊权限的控制,即root可以删除任何用户创建的文件

SBID权限举例

chmod 1777 /etc/123 配置文件/etc/123的一般权限为rwxrwxrwx,并配置特殊权限SBID

综合得到文件的权限就为rwxrwxrwt

此时其它用户虽然有文件的权限,但是由于SBID权限的显示,使得用户无法删除此文件

linux 文件权限,Linux,linux

配置特殊权限

参数方式

 suid  u+s

 sgid  g+s

 sbit   o+t

 chmod u+s 文件名   设置文件配置suid权限

数字方式

 suid =  4

 sgid =  2

 sbit  = 1

在通过数字方式配置特殊权限时,需要特殊权限和一般权限结合来配置

chmod 1743 文件 为文件设置特殊权限为1(SBID),一般权限为743

chmod 5451 文件  为文件设置特殊权限为5(SUID+SGID),一般权限为451

即:如果要配置特殊权限SBID,原先的文件权限为rwxrwxrwx

此时配置命令就为 chmod 1777 文件命名 为此文件配置SBID特殊权限(最开头的1数字就代表特殊权限,此处指的是SBID;如果为5表示配置SUID和SBID)

配置完成后文件的权限就会变为rwxrwxrwt


umask 修改文件的权限掩码

umask介绍

umask 【参数】 【权限】        修改/查看文件的权限掩码

  -p        完整打印umask内容

  -S        以符号的形式显示权限掩码

什么是umask值

umask值表示文件的默认权限掩码,通过该掩码定义了不同用户创建文件/目录的默认权限

默认umask值

通过umask  直接查看该用户默认的umask值

root用户的umask值为0022;普通用户的umask值为0002

linux 文件权限,Linux,linux

第一位代表特殊位(对应文件的特殊权限,只有配置了SUID、SGID、SBID此值才有效),暂不考虑

第二位代表文件的用户权限

第三位代表文件的用户组权限

第四位代表文件的其它用户权限

如何通过umask得到文件/目录的默认权

文件创建后的默认权限等于666-umask对应的默认值(如果umask为奇数,则默认权限等于0666-umask值+1)

目录创建后的默认权限等于777-umask对应的默认值

普通用户:默认文件权限为664,默认目录权限为775

Root用户:默认文件权限为644,默认目录权限为755

修改umask值

临时修改umask值

umask 权限掩码                实现临时修改umask值

umask 002              修改该用户的umask值为002

永久修改umask值

通过修改/etc/bashrc或者/etc/profile文件实现永久修改umask值

linux 文件权限,Linux,linux


文件的隐藏权限

文件的隐藏权限,默认看不到的权限(对管理员也生效)

chattr 配置/删除文件的隐藏权限

chattr +参数 文件名  配置文件隐藏权限

chattr - 参数 文件名  删除文件隐藏权限  

   i  无法对文件进行修改(只可以修改此文件的子文件,不能新建和删除此文件)

   a  仅允许向文件追加内容,无法覆盖、删除内容

 u  删除文件,可以恢复(保留在硬盘中的数据)

 s   彻底删除文件,不可恢复(用0填充原文件所在硬盘区域)

S   文件内容变更后立即同步到硬盘

A   不再修改这个文件或者目录的最后访问时间

b   不再修改这个文件或者目录的存取时间(atime)

D   检查压缩文件中的错误

d    使用dump命令备份时忽略本文件/目录

c    默认将文件或目录进行压缩

x    可以直接访问压缩文件的内容

chattr +a abc  文件abc只可以追加内容

linux 文件权限,Linux,linux

lsattr 查看文件的隐藏权限

lsattr 文件

 -a 查看指定目录中全部文件的隐藏属性,包括隐藏文件

 -d 查看指定目录的隐藏属性

 -D 显示属性的名称、默认值

 -E  显示从用户设备数据库中获得属性的当前值

lsattr abc 查看文件abc的隐藏权限

linux 文件权限,Linux,linux


文件访问控制列表权限

文件访问控制列表权限,facl(file access control list),

与一般、特殊、隐藏权限的区别

一般权限、特殊权限、隐藏权限  是对于所有人或某些人做限制的

一般权限 对某些人做限制

特殊权限  对所有人做限制

隐藏权限  对所有人做限制

文件访问控制列表能够针对一个用户以及一个文件来做精准的权限

当同一用户的一般权限与setfacl产生了歧义,setfacl的优先级最高

setfacl 管理文件的facl

setfacl 【参数】 文件名————对文件设置facl

setfacl -m u:用户名:权限 文件名      此文件针对某个用户单独设置权限

setfacl -b 文件名                               删除此文件的所有扩展facl            

  -m 修改权限(权限设置不允许使用数字法)

       u  对用户进行设定

       g  对用户组进行设定

  -R  对目录设定facl

  -b  删除所有扩展facl

  -x  删除某个facl

  -X  从文件中读取facl并删除

  -k  移除默认facl

  -d  设置默认的ACL规则

setfacl -m u:admin:rwx qwe  为用户admin配置针对文件qwe的rwx权限

setfacl -x u:admin qwe         删除用户admin针对文件qwe的facl

linux 文件权限,Linux,linux

getfacl 查看文件的facl

getfacl 【参数】 文件名————查看文件已经设置了哪些文件访问权限

 -a 同getfacl 文件名

 -c 显示文件的facl,不显示注释标题

 -R 显示目录的facl

 -d 显示文件默认的facl

getfacl -a qwe  显示qwe文件的facl

gerfacl -d qwe  显示qwe文件的默认facl

linux 文件权限,Linux,linux文章来源地址https://www.toymoban.com/news/detail-763742.html

到了这里,关于Linux 文件权限讲解(一般权限、特殊权限、隐藏权限、访问控制列表、Umask)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux - samba实现Linux与windows文件共享——共享文件夹目标文件访问权限被拒绝解决方案(超详细,看不懂你怪我)

            最近做一个项目,需要用到linux上的内容,于是需要将linux与window共享文件,上网查阅了一些资料,做完了之后,总结一下自己遇到的问题,以及自己是咋解决的,供大家参考。 这里其实只需要一步就可以操作出来,现在我们看一下: 一、打开虚拟机,选择设置

    2024年02月04日
    浏览(60)
  • 关于Windows系统中文件夹的【特殊权限】

    在配置文件权限的时候,很多人都会看到权限中有一个特别的权限叫【特殊权限】 如果说一般的权限比方说【修改】,【读取】啥的也都好理解,但这个【特殊权限】是个啥东西?或许很多人并不理解。那为了避免枯燥,这里先把【特殊权限】是个啥先告诉大家。 【特殊权

    2024年02月13日
    浏览(46)
  • Linux中特殊权限和提权详解

    sgid :  针对二进制的可执行文件,如果该文件有sgid的权限,那么当其他任何人来执行该文件时,则临时拥有文件拥有组的权限 针对目录: 如果一个目录有sgid权限,则在该目录下创建的的子目录可以继承该目录的权限,但是还是得根据umask值来继承,其他用户在该目录下创建子目录

    2024年01月25日
    浏览(43)
  • Linux的特殊权限(Suid、Sgid、Sbit 详解)

    在Linux系统中,普通权限我们了解到有r(读)、w(写)、x(执行),这三种权限,但是在我们查看一些其它的文件时,会发现还会有其它权限的字母。例如:s,t 等 比如下面查看的这三个文件的权限,在不同用户权限上面有不同的字母。 1、普通用户可不可以修改密码? 答

    2024年02月06日
    浏览(60)
  • 【以太坊 Solidity】管理员读写权限/访问控制/角色控制

    在 Solidity 语言的多继承中,若 多个合约 共同继承一个 父合约 ,则这 多个合约 共享 父合约 中的变量和函数。 合约继承路线如下: 1.1 权限管理合约 1.2 继承权限管理合约的基类合约 1.3 待测试的合约 2.1 正向测试:合约拥有者OWNER具有管理员权限 此时 合约 Authority 中的 构造

    2024年02月04日
    浏览(60)
  • Hyperledger Fabric 权限策略和访问控制

    访问控制是区块链网络十分重要的功能,负责控制某个身份在某个场景下是否允许采取某个操作(如读写某个资源)。 常见的访问控制模型包括强制访问控制(Mandatory Access Control)、自主访问控制(Discretionary Access Control)、基于角色的访问控制(Role BasedAccess Control)和基于

    2024年02月02日
    浏览(29)
  • 【C++】类的封装 ③ ( 访问控制权限 )

    在 C++ 语言中 , 类的成员 的 \\\" 访问控制权限 \\\" 是通过 \\\" 访问修饰符 \\\" 指定的 ; 类的 成员属性 和 成员方法 都可以 设置 访问控制权限 , 都可以被 访问修饰符 所修饰 ; C++ 语言 提供了 3 种 访问修饰符 : public : 修饰的 成员变量 和 成员函数 , 是 公开的 , 可以在任何地方访问 , 在

    2024年02月09日
    浏览(33)
  • 通过shiro进行按钮及页面访问url的权限控制

    1.当面我们每次登录系统时,都会通过我们自己定义的继承AuthorizingRealm的ShiroRealm进行用户账号密码的确认以及拥有权限的查询: (2)通过siro进行处理:shiro的配置文件 anon:例子/admins/**=anon 没有参数,表示可以匿名使用。 authc:例如/admins/user/**=authc表示需要认证(登录)才能使用

    2023年04月08日
    浏览(34)
  • 【Spring Boot项目】根据用户的角色控制数据库访问权限

    在一些特定的业务需求下,要求创建只读用户,但是由于一些查询请求使用的是POST方法,因此在网关层面配置只允许请求GET方法又无法满足。所以就想到了是否可以在 JDBC 层面控制,判断角色并且只允许执行 SELECT 类型的SQL语句。 在Spring Boot项目中,我们可以通过结合网关和

    2024年02月06日
    浏览(57)
  • 【Linux】权限讲解&&详解沾滞位

    权限随处可见,在生活中,腾讯非VIP用户不能观看VIP视频,看小说也需要会员,所以权限是限制人的,一件事是否允许被谁做。在Linux系统中也有许多权限,访问文件需要权限,进入目录需要权限,更改执行文件也需要权限。 Linux系统上有两种用户: 超级用户(root):可以在

    2024年02月06日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包