一、Linux入门| shell运行原理及Linux权限的理解

一、shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度, shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。
    对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核,反馈结果在通过内核运行出结果,通过shell解析给用户。
    帮助理解:如果说你是一个害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的翠花。你看上了翠花,但是又不好意思直接表白,那就让你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给翠花,而我们找到媒婆姓王, 所以我们叫它王婆,它对应我们常使用的bash。

二、Linux权限

1、Linux权限定义

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以在linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
    命令su [用户名]
    功能:切换用户。
    例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 suroot(root可以省略),此时系统会提示输入root用户的口令。
    例子:
    **添加普通用户:adduser [用户名] **

2、Linux权限管理

2.1 文件访问者的分类(人)

Linux系统中,人分三类:拥有者、所属组、其它用户
文件和文件目录的拥有者: u—User(中国平民 法律问题) 文件和文件目录的拥有者所在的组的用户(所属组):
g—Group(不多说) 其它用户: o—Others (外国人)

2.2 文件类型和访问权限(事物属性)

一、Linux入门| shell运行原理及Linux权限的理解_第1张图片
Linux系统不是以文件名后缀区分文件类型的,而是通过ll指令显示的第一个字符区分文件类型的!
> a)文件类型:

  1. d:目录文件
  2. -:普通文件(文本,源代码,可执行程序,第三方动静态库)
  3. l:软链接(类似Windows的快捷方式)
  4. b:块设备文件(例如硬盘、光驱等)
  5. p:管道文件
  6. c:字符设备文件(例如屏幕等串口设备)
  7. s:套接口文件

b)基本权限:
Linux系统中,文件的权限属性分为三类:r(读)、w(写)、x(可执行)

  • 读(r): read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 可执行(x): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “-”表示不具有该项权限
  • 普通文件file.txt的拥有者具有rw可读可写权限,没有x可执行权限。所属组具有r可读权限,没有wx可写可执行权限,其它用户具有r可读权限,没有wx可写可执行权限。

2.3 文件权限值的表示方法

a)字符表示方法
一、Linux入门| shell运行原理及Linux权限的理解_第2张图片
b)8进制数值表示方法
一、Linux入门| shell运行原理及Linux权限的理解_第3张图片


三、文件访问权限的相关设置方法

1、设置文件的访问权限

chmod
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
法一: 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
示例:
减去拥有者的读权限:chmod u-r file.txt
一、Linux入门| shell运行原理及Linux权限的理解_第4张图片
减去所属组和其它用户的读权限:chmod g-r,o-r file.txt
一、Linux入门| shell运行原理及Linux权限的理解_第5张图片
加上拥有者和其它人的所有权限:chmod u+rwx,o+rwx file.txt
一、Linux入门| shell运行原理及Linux权限的理解_第6张图片
注意:root不受任何权限约束,可以为所欲为。
现在,我们把普通用户yolo切换到超级用户root:这里的其它用户指的是除root以外的其它普通用户。

法二:使用三位八进制数字

加上所有权限
一、Linux入门| shell运行原理及Linux权限的理解_第7张图片
更改指定权限
一、Linux入门| shell运行原理及Linux权限的理解_第8张图片

2、修改文件的拥有者

chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
注意:给别人文件需要争得别人同意
实例:

3、修改文件的所属组

chgrp

功能:修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
实例: 以root用户直接更改:

4、查看或修改文件权限掩码

umask

功能:查看或修改文件掩码
新建文件夹默认权限=0666,新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是:mask & ~umask。
那么最终权限到底如何计算呢?
首先,对默认权限掩码按位取反,接着拿按位取反后的结果与文件的默认权限进行按位与的操作 ,得到的就是最终权限。
一、Linux入门| shell运行原理及Linux权限的理解_第9张图片
最终权限 = 默认权限 & (~umask)。

5、目录的权限

了解了普通文件的rwx可读可写可执行,现在来看看目录的rwx的含义:
r 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
w 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
x 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

6、粘滞位

在Linux中,可以存在一些目录,拥有者和所属组是root,其它人允许以other的身份在该目录下进行文件的创建,读取,删除,修改等。如下的一个名为tmp的目录:
在这里插入图片描述
该目录的拥有者和所属组均属于root,且other其它人的权限都是没有限制的,也就是说任何人都可以在里头读写文件。
只要all目录下的可写w权限是允许的,那么就可以随意删除该目录下的文件,不论该文件是不是属于你自己的用户,这么看显然是不合理,为了解决这个问题,Linux推出了粘滞位。
如果我还想把某一文件放到共享目录下,但又不想让别人删掉,就需要给共享的目录加上粘滞位。首先我们切回root用户,执行 chmod +t all 命令即可:
给共享目录all加上粘滞位后,此时other其它人的权限由rwx变成rwt。此时就可以防止在共享目录的文件被别人删除了:
综上:当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
1、超级管理员root删除
2、该目录的所有者删除
3、该文件的所有者删除

7、file指令

功能:辨识文件类型。
语法: file [选项] 文件或目录…
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容
在这里插入图片描述

你可能感兴趣的:(Linux初级,linux,bash,windows)