Linux权限管理(超详解哦)

这篇具有很好参考价值的文章主要介绍了Linux权限管理(超详解哦)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

我们知道,Linux中有两种用户:管理员用户root,以及普通用户
管理员用户root可以在Linux下做任何事情,而普通用户只能做有限的事情,可以通过su指令来切换用户类型su usersu root(root可以省略):

Linux权限管理(超详解哦)
Linux权限管理(超详解哦)
(普通用户的命令提示符为$,root用户的命令提示符为#)
普通用户切换到root,需要输入root账号的密码。

对于Linux有这两种用户,也就是两种角色。那么对于一个文件或目录是否也对不同的用户有不同的权限呢,当然是有的,在本篇文章中就来介绍Linux文件的权限管理:

文件访问者的分类

对于一个文件或目录,在Linux中有三种角色:

  1. 文件的所有者u(user)
  2. 文件所有者的所属组g(group)
  3. 其他用户o(others)

所有者、所属组、其他用户只是单纯的角色,它其实并不能决定某个用户就一定对一个文件有某种权限
用户对文件的权限不仅取决于这个用户对于这个文件的角色,还取决于文件的属性,即文件赋予角色什么权限。结合两者才能得知一个用户对于一个文件的权限。

文件类型与访问权限

我们在ll查看文件的属性的时候,展示出来许多文件的属性,其中就包括文件类型、对不同角色的访问权限、文件大小、最后一次修改时间、文件名等:
Linux权限管理(超详解哦)
其中第一列为文件类型,后面的9列为访问权限,接下来的数字是链接数,接下来的两个名称分别为所有者与所属组,最后是最后一次修改时间与文件名:
Linux权限管理(超详解哦)

文件类型

在Linux中,文件有如下几种类型:

  1. d:文件夹
  2. -:普通文件
  3. l:软链接(类似Windows的快捷方式)
  4. b:块设备文件(例如硬盘、光驱等)
  5. p:管道文件
  6. c:字符设备文件(例如屏幕等串口设备)
  7. s:套接口文件

访问权限

用户对一个文件的权限有三种:可读、可写、可执行

  1. 可读用r表示(read):
    有了可读权限,就可以读取文件的内容
  2. 可写用w表示(write):
    有了可写权限,就可以在文件中写入或删除内容
  3. 可执行用x表示(execute):
    有了可执行权限,就可以执行该文件
  4. -表示没有某个权限

而上面文件的属性中描述权限的内容有9列,它们分别是对所有者的权限、对所属组的权限以及对其他用户的权限。其中对每个角色三种权限的描述分别为可读、可写、可执行这些顺序都是固定的

所以如果对某个角色的某个权限的位置有相应的字符,就表示改角色有相应的权限,如果为-即表示该用户没有该权限:
例如这个testf文件:
Linux权限管理(超详解哦)
前三列为对于所有者的权限,为r w -,表示该文件所有者对其可读可写,但是不可执行;
中间三列为所属组,为r w -,表示该文件所属组对其可读可写,但是不可执行;
后三列为其他用户,为r - -,表示其他用户对其可读,不可写不可执行

文件权限值的表示方法

对于三种权限有其固定的位置,当然可以通过二进制0与1的形式来表示一个角色对某文件的权限
如此,一个文件对于角色权限就有2^3=8种不同的二进制数来表示:
Linux权限管理(超详解哦)

修改权限的指令

chmod修改文件权限

使用chmod指令可以修改文件的权限,该操作只能由文件的所有者以及超级用户root执行(前面说过root用户无视权限)

通过角色+/-/=权限来修改

chmod [选项] 用户+/-/=某项权限 文件名
用这样的格式可以修改文件的权限

其中,代表角色的符号为u(所有者)、g(所属组)、o(其他用户)、a(所有用户);
代表权限的符号为r(读权限)、w(写权限)、x(执行权限);
符号 +(向权限范围增加权限代号所表示的权限)、-(向权限范围取消权限代号所表示的权限)、=(向权限范围赋予权限代号所表示的权限):

给所属组g减去w权限
Linux权限管理(超详解哦)
给所属组g直接赋予w权限
Linux权限管理(超详解哦)
给其他用户o加上w权限
Linux权限管理(超详解哦)

使用-R选项可以递归修改目录文件的权限
Linux权限管理(超详解哦)

通过三个八进制数修改

chmod [选项] 三个八进制数 文件名
用于修改用户的权限

其中,第一个八进制数表示修改后的所有者权限,第二个表示修改后的所属组权限,第三个表示其他用户权限。
在前面,我们就已经用8个八进制数来表示所有的权限组合,所以这里直接使用即可:
Linux权限管理(超详解哦)
同样的,使用-R选项可以递归处理。

chown修改所有者

chown [选项] 用户名 文件名
用于修改文件的所有者,只有root用户可以修改

Linux权限管理(超详解哦)
-R选项可以递归处理目录下的文件:
Linux权限管理(超详解哦)

chgrp修改所属组

chgrp [选项] 组名 文件名
用于更改文件的所属组用户,只能由root用户使用

我们可以先来创建一个组qqq,并创建一个用户temp,使qqq为其主用户组。然后来使用chgrp改变文件的所属组:
(可以通过groupadd [用户组名称](创建一个组qqq),与useradd -g [用户组名称] [新用户名称] (新建一个用户并使该组为主用户组)指令来实现)
Linux权限管理(超详解哦)
-R选项可以实现目录的递归处理:

Linux权限管理(超详解哦)

umask修改或查看文件权限掩码

umask 可以用于查看文件权限掩码
umask [三个八进制数] 用于修改文件权限掩码

在介绍这条指令的使用之前,我们先来了解一下文件权限掩码的作用:

文件创建时的权限

普通文件创建时的默认权限为0666,目录文件创建时的默认权限为0777。但是我们在新建一个新的文件或目录后,其权限却不是0666与0777:
Linux权限管理(超详解哦)
新建一个文件的权限其实是默认的权限减去该用户的文件权限掩码(八进制),对于二进制的三位数而言,就是将用户的文件权限掩码按位取反后,再按位与(&)上默认权限。

普通用户默认的文件权限掩码为0002,root用户默认的文件权限掩码为0022
我们可以使用umask指令来查看:
Linux权限管理(超详解哦)
Linux权限管理(超详解哦)

对于上面的testf2文件与testdir2文件,其初始的权限就是 666 - 002 = 664(rw- rw- r--)与 777 - 002 = 775(rwx rwx r-x)。也可以通过二进制来计算。

使用umask [三个八进制数] 可以修改文件权限掩码:
Linux权限管理(超详解哦)
将文件权限掩码改为0026后,新建的普通文件的权限就是 666 - 026 = 640(rw- r-- ---)。

目录的权限

对于目录:

  1. 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
  2. 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  3. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

我们可以来验证一下,我们之前创建了一个temp用户,这个文件夹对其他用户与所属组都是没有任何权限的:
Linux权限管理(超详解哦)
这时,作为qiuzeyu账户,仅仅只能看见这个目录而已,其他什么都做不了:
Linux权限管理(超详解哦)
我们依次打开temp对其他用户的权限(root操作):
只有x:(可以进入,不能查看与修改)
Linux权限管理(超详解哦)
xr(可以进入,查看,不能修改)
Linux权限管理(超详解哦)
r w x(可以进入、查看、修改)
Linux权限管理(超详解哦)

但是,这里有一个问题,就是只要用户有某目录的写权限,即使它没有这个目录中文件的写权限,那他也可以直接删除该目录中的文件(以temp下的tempdir目录演示):

当tempdir目录对其他用户有写权限时,就可以直接删除这个目录中的文件,无论对其中的文件是否有写权限:
Linux权限管理(超详解哦)
这就很荒谬,属于是一个漏洞,都不能进行写入竟然可以直接删除这个文件。

使用粘滞位就可以解决这个问题:

粘滞位

粘滞位替代了其他用户的可执行权限的位置,用t表示。
可以使用chmod +t [文件名]的方式给目录添加粘滞位

使用粘滞位后,该目录中的文件只能由目录的所有者、目录中文件的所有者以及root账户删除:
Linux权限管理(超详解哦)
Linux权限管理(超详解哦)

总结

到此,关于Linux文件权限的内容就介绍完了
包括文件访问者的分类,文件类型与访问权限,文件权限值的表示方法,修改权限的指令,目录的权限与粘滞位

如果大家认为我对某一部分没有介绍清楚或者某一部分出了问题,欢迎大家在评论区提出

如果本文对你有帮助,希望一键三连哦

希望与大家共同进步哦文章来源地址https://www.toymoban.com/news/detail-493125.html

到了这里,关于Linux权限管理(超详解哦)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 开源、私有化部署,这款知识管理系统还有多少惊喜是我们不知道的

    编者按:想要开源的知识管理系统?最好还可以私有化部署?本文分析了开源和私有化部署的知识管理系统对于企业的意义,介绍了天翎知识管理系统开源+私有化部署的特色,以及其他方面的特点。 私有化部署的知识管理系统的意义 知识管理(Knowledge Management),一种最新

    2024年01月20日
    浏览(41)
  • 掌握文件权限管理:Mac和Linux中的chmod +x命令详解

    chmod +x是一个用于在Mac和Linux操作系统上设置可执行权限的命令。它允许你将可执行权限添加到文件,使得你可以运行这个文件作为一个程序或脚本。这个命令通常用于shell脚本、可执行程序和其他可运行文件。  chmod 是一个在Unix和Unix-like操作系统中用来改变文件或目录权限的

    2024年02月05日
    浏览(44)
  • 后台管理系统权限管理详解

    简述权限管理: 你可以在后台通过一个 tree 控件或者其它展现形式给每一个页面动态配置权限,之后将这份路由表存储到后端。当用户登录后得到roles,前端根据roles去向后端请求可访问的路由表,从而动态生成可访问页面,之后就是 router.addRoutes 动态挂载到router 上,你会发

    2024年02月05日
    浏览(29)
  • 关于GPT4,我们都知道什么?

    人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典 北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理 我们生活在一个AI激动人心的时代,你会不停看到各种新型模型的推出,它们彻底改变了 AI 领域。2022

    2023年04月16日
    浏览(31)
  • 【Linux】组管理和权限管理

    在linux中的每个用户都必须属于一个组,不能独立于组外。在 linux 中每个文件都有所有者、所在组、其它组的概念。 所有者 所在组 其他组 改变用户所在的组 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。 2.1 查看文件的所有者 指令:ls-ahl 应用实例

    2023年04月11日
    浏览(25)
  • CentOS 7 权限管理实战指南:用户管理相关命令详解

    掌握 CentOS 7 用户管理命令,轻松管理系统用户!本文详细介绍了在 CentOS 7 系统中常用的用户管理命令,从创建和删除用户、修改用户属性,到密码管理和用户权限设置,一应俱全。无论你是 Linux 新手还是经验丰富的管理员,这篇文章都将为你提供清晰而实用的用户管理技巧

    2024年01月17日
    浏览(39)
  • Linux用户权限管理

    目录 一 权限定义 二 权限表示法 2.1 数字表示法 2.2 文字表示法 三 更改权限 四 权限ACL配置 五 特殊权限 5.1特殊权限SUID 5.2 特殊权限SGID 5.3 特殊权限Sticky 5.4 linux改变拥有者 通过ll命令查看,然后摘出来一条分析: d r-x rwx --x.   5 root root 4096 May  7  2020 boot d:该文件类型是目录

    2024年02月08日
    浏览(38)
  • 【Linux】- 权限管理

    root 用户就是上帝 权限 就是用来限制 普通用户 的,权限对root用户没有用。 为什么会有Shell外壳? 因为我们一般人是 看不懂 操作系统内部结构的,而且直接在操作系统上操作很 容易发生错误 Shell外壳就像一个 翻译官 。 如果直接让用户与操作系统内核沟通,那么用户就必

    2024年01月17日
    浏览(29)
  • 『Linux升级路』权限管理

     🔥 博客主页: 小王又困了 📚 系列专栏: Linux 🌟 人之为学,不日近则日退  ❤️ 感谢大家点赞👍收藏⭐评论✍️ 目录 一、Linux中的用户 📒1.1Linux用户分类 📒1.2用户转换 📒1.3指令提权 二、Linux权限管理 📒2.1权限的概念 📒2.2Linux中的角色 📒2.3文件权限 📒2.4权限修

    2024年02月08日
    浏览(25)
  • LINUX——用户及权限管理

    一、LINUX有三种用户 1、 管理用户 :即root,由系统自动创建,具有LINUX所有权限 2、 一般用户 :即我们自己创建的用户,无法修改配置文件 3、 服务用户 :用于apache、邮件、打印服务等系统服务 一般我们使用LINUX时,使用普通用户进行登录查看,需要修改LINUX,切换成 root用

    2024年02月07日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包