【从小白到大白04】Linux基本权限

【从小白到大白04】Linux基本权限_第1张图片

文章目录

  • shell命令以及运行原理
  • Linux基本权限
      • 切换用户
      • sudo提权
  • 文件权限
    • 文件访问者的分类
    • 文件属性
      • 文件类型
      • rwx权限
      • chmod +/-权限
      • chown chgrp
      • chmod +数字
      • umask
  • 粘滞位
  • 如果该文章对你有帮助的话,点个支持下博主吧,我会继续更新高质量文章的!!!

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“内核(kernel)“ ,但我们一般用户,不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

Shell的最简单定义:命令行解释器(command Interpreter)

shell作用:

1.将使用者的命令翻译给核心(kernel)处理。

2.同时,将核心的处理结果翻译给使用者。

【从小白到大白04】Linux基本权限_第2张图片

对比Windows,我们操作windows不是直接操作windows内核,而是通过图形接口,点击等等完成我们的操作(比如:双击打开你的D盘浏览学习资料);

相同的shell对于Linux有相同作用,对我们的指令解析给Linux内核,反馈结果通过内核运行出结果后,通过shell传递給我们。

Linux基本权限

Linux系统下有两种用户:超级用户(root)-皇帝;普通用户-平民

皇帝可以在Linux系统下做任何事-没有限制

平民在Linux系统下受限制的苟活

超级用户提示符为"#“;普通用户提示符为”$"

切换用户

命令:su+[ 用户名]

root用户切换到普通用户:su + user(用户名)

比如root用户换成李现(用户名)直接输入:su 李现 那么现在你就是李现啦!

而普通用户切换到root用户则需要输入:su root (root可省略)—需要输入登录root账号的密码!

sudo提权

当我们是平民(普通用户)时,想要拥有皇帝(root用户)的权力去做一件事,但是我们又不想改变我们平民(普通用户)的身份时,就可以用到sudo提权操作!

命令:sudo + 指令

比如我们作为普通用户想要用以root的身份在当前目录下去创建一个文件(test.c)-则我们可以这样:

sudo touch test.c

(这时我们需要输入当前普通用户的密码!在短暂的几十分钟内不需要再输入密码就能继续sudo提权)

文件权限

文件权限=人(文件访问者)+文件属性

文件访问者的分类

u-user(所有者):文件和文件目录的所有者

g-group(所属组):文件和文件目录的所有者所在的组的用户

o-other(其他用户)

【从小白到大白04】Linux基本权限_第3张图片

文件属性

我们可以看到文件的前面有十个字符,第一个字符代表着文件类型

文件类型

【从小白到大白04】Linux基本权限_第4张图片

其中linux系统中的文件类型和windows系统中的文件类型区分的方式不同!

Windows以后缀(比如.txt、.dll、.jpg)区分文件类型

linux不以 后缀去区分文件类型!

【从小白到大白04】Linux基本权限_第5张图片

如果要使用文件后缀,仅仅只能用来提示用户来区分文件—文件后缀是文件名的一部分!

而linux则是以文件的前面属性的第一个字符作为文件类型的区分!

linux文件类型(前面属性的第一个字符作为区分):

—(横杠):普通文件(源代码、库文件、可执行程序。文件压缩包等等)

d:目录文件

c:字符设备文件:键盘、显示器等等

b:块文件:磁盘等等

l:链接文件:快捷方式

p:管道文件

s:socket文件

以上文件除了普通文件和目录文件,其他文件几乎不能删啊!

那么剩下的九个字符呢?

剩下的九个字符分为三三为一组!

【从小白到大白04】Linux基本权限_第6张图片

分别为所有者、所属组。other对应的权限!

接下来我们针对一组权限进行刨析,其他两组权限是一样的可以类比:

rwx权限

r-read(读)权限

w:write(写)权限

x:execute可执行权限

有就显示对应字符,没有就显示-【比如r-x:有读权限,没有写权限,有可执行权限】

拥有者一般三个权限都有:rwx-读权限-写权限-可执行权限

那么具体在linux系统上我们应该怎么看权限呢?
权限:某人允许做某事 【属性和人要一 一对于!】

【从小白到大白04】Linux基本权限_第7张图片

chmod +/-权限

给文件或目录增加或减少权限用到chmod

指令:chmod + 人+/-权限 + 文件名

比如: chmod u-r test.txt【在文件test.txt上给user(所有者)减去读权限】

【从小白到大白04】Linux基本权限_第8张图片

另:改文件或目录的人只能是该文件或目录拥有者或者是root!!!

要是想要一次性给文件所有属性同步增减权限,可以这样:

chmod + a+/-指令 + 文件名{a—all—所有人}

【从小白到大白04】Linux基本权限_第9张图片

chown chgrp

给文件更改所有者要用到chown

指令:sudo chown 用户名 文件名(sudo提权)

一般情况下,你把文件给完别人之后你的身份就从user(所有者)变为group(所属组)

给文件更改所属组要用到chgrp

指令:sudo chgrp 用户名 文件名

要是想要把文件或者目录的所有者和所属组给同一个人,那么我们可以:

指令:sudo chown 用户名:用户名 文件名

chmod +数字

更改权限不只有上面说到的chmod +/-rwx;这里我们可以这样看rwx

【从小白到大白04】Linux基本权限_第10张图片

所以我们可以这样改:

指令: chmod 数字数字数字 文件名

【从小白到大白04】Linux基本权限_第11张图片

umask

在linux操作系统中,目录的创建出来的起始权限为777 ;而文件的创建出来的起始权限为666

但是我们查看的目录起始权限为775,文件的创建出来的起始权限为664,这是为什么呢?

而系统会默认配置好umask权限掩码**:凡是在umask中出现的掩码,都必须在权限中去掉!!**

umask— 0002(八进制、第一位0负责补齐不需要看) — 000 000 010

就是系统会把umask有的权限在文件或目录中去掉(去掉有的1),然而系统用的不是减法,而是把

umask掩码按位异或 然后再与文件或目录的权限按位与**【(~umask)&权限码】**

【从小白到大白04】Linux基本权限_第12张图片

umask掩码是可以修改的 **指令:umask xxxx **

(xxxx为八进制数字;第一位0可省略,即为 umask xxx

查看umask指令: umask

【从小白到大白04】Linux基本权限_第13张图片

那如果我们要进入一个目录,至少需要什么权限呢?

至少需要x(可执行)权限!【这就是为什么系统规定一个目录的起始权限为777,因为所有的目录被创建出来,一般都是要被允许进入的!-具有x(可执行权限)】

粘滞位

在linux系统中,我们需要一个公共的目录来进行文件的操作(增删查改)【就像咱都需要公共的球场打野球那样】

而这个公共的目录是由root来创建的;所属组和other都能在这个目录下操作文件;这时候有个情景:

有一天早上,在目录所属组里的a佬创建了a.txt文件,限制了所属组和other只能读(744);这时候有个同在所属组里的b佬来到这个目录,看到a佬创建了个新文件(a.txt),然后b佬打开了文件并且浏览了里面的学习资料;到了晚上,a佬不想把a.txt给别人看了,然后把a.txt文件的权限改为700(不给所属组和other读写可执行权限);第二天早上b佬又想打开a.txt浏览学习资料,但是他发现打不开a.txt了;一气之下把a.txt删除啦!这时候a佬感觉到愤怒又委屈!这合理吗?

除开对于a.txt文件权限,对于当下公共目录的权限来说,这恒河里阿!

在公共目录里,不能读写执行的文件也可以删掉。

这时候就需要粘滞位啦—给公共区域的每个佬规定各自创建的文件只能自己删除!

【从小白到大白04】Linux基本权限_第14张图片

这时候/myteam目录(根目录底下的myteam目录)里面不能读写执行的文件也可以删掉。

指令:chmod +t 目录名

【从小白到大白04】Linux基本权限_第15张图片

我们看到公共目录的ohter属性从rwx变为了rwt即添加粘滞位成功!

给公共目录增加粘滞位后就不会出现 不能读写执行的文件也可以删掉的情况。【等于粘滞位给公共目录的每个佬都划分了自己的区域!】

当一个目录被设置了粘滞位后,则该目录下的文件只能由【root删除】、【目录所有者删除】、【文件所有者删除】

如果该文章对你有帮助的话,点个支持下博主吧,我会继续更新高质量文章的!!!

你可能感兴趣的:(linux,linux,运维,服务器)