| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux 权限管理深剖 -> 正文阅读 |
|
[系统运维]Linux 权限管理深剖 |
CSDN技能树评测征文活动-Vue技能树社区 传统艺能😎小编是双非本科大一菜鸟不赘述,欢迎大佬指点江山(QQ:1319365055) 🎉🎉非科班转码社区诚邀您入驻🎉🎉 🎉🎉🎉倾力打造转码社区微信公众号🎉🎉🎉 shell 🤔shell 即外壳的意思,它是 Linux 的外壳程序,所谓的外壳程序是我们对于他的一个感性认知。 该怎么理解呢?假设有一个场景: 我想强调的是这个场景里面的三个人:“我”,现充死党,女神。他们对应的角色就是用户,shell 外壳,内核。那么问题来了,我用户为什么不直接找内核解决问题呢?很简单,他也是社恐他不山擅于直接和内核打交道。所以用户指令交给OS执行完后才交给 shell, shell 再交给用户命令行解释器。Linux 下外壳指的就是命令行解释器,而 Windows 下外壳指的是图形化界面。 意义🤔他的第一个意义就是如上所说将使用者的命令交给核心处理,同时将核心的处理结果翻译给使用者,shell 降低了操作 OS 的成本。 第二个意义,假设我是个执着的人,就是想追那位程序媛,我的现充死党就又为了我提枪上阵,但是刚杀到人家办公室就发现她和隔壁办公室的高富帅在打情骂俏,于是无奈之余只能在外面闲绕两圈回来告诉我已经不可能了,我于是接收了这个现实。这个场景里面,现充之所以能成为现充还是因为他八面玲珑会处事。也就是说 shell 会提前为内核把关不合理请求并过滤掉,也就是变相保护了 OS 系统。 在 centos 7 中常用的命令行解释器叫做 bash,shell 作为月老的话 bash 就相当于我的现充死党。 Linux 用户分类🤔用户分为 root 用户和普通用户,root 用户相当于管理员,我们叫做超级用户,拥有最高权限,我们可以在 root 用户下创建多个普通用户。我们的权限是受管控的,root 和 Linux 下任何一个用户都要设置密码,建议各位不要将 root 密码和普通用户密码搞得一样,对密码不做区分也就是对用户不做区分,你可能就不知道我到底在输谁的密码。 只要知道系统密码,。我们就可以用 su- 命令进行随意切换。 文件权限🤔我们知道文件类型加文件属性得到一个文件,我们看看在 Linux 下的文件:
虽然不以文件名后缀区分文件但是如果在 Linux 里执行的话依然会区分,因为 Linux 规则并不等于 gcc 环境规则,这些咱不需要特意去记忆,后面都会遇到的家人们。 权限理解🤔什么是权限呢?它是用来约束人的,在对应事物具有的基本属性的范围内,比如一个文件对应文件基本的属性我们权限被分为能访问和不能访问,一个高度的概念就是权限 = 人+事物属性。 在 Linux 系统中,所谓的人分为了三类:
这个 grouper 什么什么东西呢?这就涉及到一个公司对待一个项目时展现出不同的世界观,比如百度奉行绝不会让两个工作组搞相同的事情,拿钱雇你不是让你做相同的事情,一组成功那就意味着另一组必定失败,所以百度觉得这是资源的浪费。但是腾讯化腾就有一手赛马机制,比如现在的微信就是在内部竞争完后才拿出来进行市场竞争。grouper 不是一个非此即彼的关系,除了 owner 本人有权限同组的人或者你的 leader 都可以进行查看。 上面这三者是三种不同角色,和我是 root 用户还是普通用户的身份并不冲突,他们是相互补充的。
第一组是拥有者权限,第二组是所属组权限,第三组是other的权限,每一组对应的权限位置含义是确定的:r–,-w-,–x ,分别代表是否可读可写可执行。
属性权限更改🤔chmod 是 Linux 用于修改权限的指令,语法是
u,g,o 代表所属组, + 表示增加权,- 表示取消权限,= 表示唯一设定权限,r,w,x 代表读写执行的功能。系统判定权限情况会将他是否具有该权限化为二进制 0/1 ,再把二进制化为一个八进制数,比如所属组 u 是 r-x ,二进制就是 101 ,化成八进制是 7,假设三个所属组一样都是 r-x,就是三组 7,组合下来是 777,我们在 chmod 指令可以直接跟 8 进制(理解上当成 2 进制)指令比如上面这种情况可以写成:
或者也可以进行全员统一修改:
这里的 x 可以是 r,w,x ,面对的对象是三个所属组一起修改。 所属组权限修改🤔我们想要给别人东西的时候也是需要别人同意的,所以修改所属组是需要询问的,在 Linux 中利用 sudo + chgrp 指令可以达到,他可以达到权限提升的作用,强迫现有所属组接收给予,就好比你收到爷爷奶奶的压岁钱,你爸爸妈妈不想你要,但是爷爷奶奶一声令下:拿着!这时你爸爸妈妈也只就只能勉强答应了。 这就是更改拥有者,我们现在的系统执行 sudo 指令是会报错的,在之后 vim 部分完善后会得到统一解决。之所以他会报错是因为系统里面有一个叫信任列表的东西,你并没有被添加进去,它是一个 etc/sudoers 路径下的一个配置文件,我们现在是没有权限的。 目录权限🤔非战斗人员请撤离!注意,这是一个面试题目:如果我想进入一个目录,需要什么权限? 答案是 x ,可执行权限。我们可能会首先想到 r 权限, read 读取权限嘛,结果 chmod - r 后惊奇的发现依然可以进去。如果一个目录没有 r 权限,可以哦进入但是不允许查看,如果没有 w 权限,可以进入但是不能写入比如创建文件这种动作,如果没有 rw 权限并非不能查看文件内容,只是不允许查看目录下的文件列表,文件内容查看只由自己的权限决定。 我们之前说过, Linux 下一切皆文件,目录也是一个文件,只要是文件他就具有文件的基本属性:内容+属性,我们理解目录其实可以当作是在理解文件。 umask 权限掩码🤔这个图就反应了一个经典的问题:为什么我们创建目录默认权限是 775 ,而普通文件默认权限是 664 ?当然不同的系统可能有差异! 其实按规定默认目录权限是从 777 开始,而普通文件是从 666 开始,但是为什么这里又是 775 和 664 呢?因为系统中还存在一个叫做 umask 的权限掩码:0002,凡是在权限掩码中出现的权限就不能再最终权限中出现。比如默认给出的 777 是这样变成 775 的:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 11:32:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |