【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念

目录

  • shell命令及运行原理
  • Linux权限的概念
      • Linux下的用户
      • Linux创建用户和删除用户
      • Linux用户切换
      • Linux增加用户权限(添加到信任列表)
  • Linux权限的管理
      • 01.文件访问者的分类
      • 02.文件类型和访问权限(事物属性)
      • 03.文件权限值的表示方法
      • 04.文件访问权限的相关设置方法
          • a)修改文件的访问权限
          • b)修改文件的拥有着
          • c)修改文件或目录的所属组
          • d)查看或修改文件的掩码
  • 目录的权限
  • 粘滞位
  • 关于权限的总结

shell命令及运行原理

在Linux中,严格意义来说是一个操作系统,我们称之为"核心(kernel)",而在操作时,我们一般是普通用户,不能直接使用kernel。而是通过kernel的外壳程序,也就是我要说的shell,来和kernel来沟通。
如果理解呢?
对比Windows GUI,我们操作windows不是直接操作windows内核,而是通过图形化接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell对于Linux的,有相同的作用,主要是对我们的指令进行解析,解析指令给内核。反馈的结果通过内核运行出结果,共同shell解析给用户。
而从技术角度,shell的最简单的定义:命令解释器(command interpreter)主要包括:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心处理的结果翻译给使用者,

Linux权限的概念

Linux下的用户

在Linux中有两种用户:超级用户(root)、普通用户
超级用户:可以在Linux系统下做任何事情,不受限制。
普通用户:在Linux下做有限的事情。

我们任何区分自己是超级用户还是普通用户呢?
超级用户的命令提示符是‘#’,普通用户的命令提示符是‘$’
在这里插入图片描述

在这里插入图片描述

Linux创建用户和删除用户

我们一开始一般都是超级用户(root),使用root时不小心误删了一些重要的东西,是不可逆的,为了降低危险,我们创建一个普通用户,用来操作。

创建普通用户要先切换到超级用户(root)中进行:
命令:adduser 用户名
命令:passwd 用户名
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第1张图片
注意:在Linux中,输入密码不回显

删除用户,要到root中进行:
命令:userdel -r 用户名
在这里插入图片描述

Linux用户切换

在使用Linux的时候,我们要经常来回用超级用户和普通用户,那么 我们要如何切换呢?
指令:su 用户名
功能:切换用户
超级用户切换到普通用户时,使用普通用户的密码
在这里插入图片描述
我这里用超级用户切换到普通用户时,并没有要输入密码,使用看情况而定,要输入密码的时候就输,不要就更好。

普通用户切换到超级用户,使用超级用户密码
在这里插入图片描述

Linux增加用户权限(添加到信任列表)

在使用普通用户的时候,有些命令需要增加权限来进行的。
例如:在普通用户下修改其他用户的密码
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第2张图片
上面是不被允许的,我们要把自己的用户存放到信用列表中:
1、现切换到root用户中
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第3张图片
2、进入/etc/sudoers 文件中
格式: vim /etc/sudoers
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第4张图片
3、
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第5张图片
4、在那一行后面写上: 用户名 ALL=(ALL) ALL
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第6张图片
5、切换回自己的用户
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第7张图片

最后恭喜你修改成功!

Linux权限的管理

01.文件访问者的分类

问访问者可以分为三类:
1、文件和文件目录的所有者(所属用户)
2、文件和目录的所有者所在的组的用户(所属组)
3、其他用户(other)
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第8张图片

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

我们在Linux系统上创建文件或者目录时,都会有一串字符+数字。

在这里插入图片描述
-rw-rw-r-- 1 cxy cxy 0 Jul 28 16:47 text1

【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第9张图片
文件类型

d:文件夹
-:普通文件
l:软链接(类似windows的快捷键)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

基本权限

r:对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录的权限
w:对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
x:对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
-:表示不具有该权限

03.文件权限值的表示方法

1)字符表示方式
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第10张图片
2)8进制表示法
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第11张图片

04.文件访问权限的相关设置方法

a)修改文件的访问权限

一个文件或目录,对于所属用户、所属组、other都有他们自己的权限,例如:
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第12张图片
由于这个文件或目录是属于我们的,我们是可以修改这个文件或目录的权限属性。
指令:chmod
功能:设置文件的访问权限
语法:chmod 参数 权限 文件名
常用选项:

R:递归修改文件的权限
说明:只要文件的拥有者和root才可以改变文件的权限

chmod 命令的命令权限的格式
1、用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第13张图片
2、三位8进制数字
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第14张图片

注意:我们也可以还其他组的权限
u+或者u- 是改所属用户的权限
g+或者g- 是改所属组的权限
o+或者o- 是改其他人的权限
a+或者a- 是改所有人的权限
八进制改发也是可以的

如果想一次性修改多个文件,那么后面再加你想修改的文件名

b)修改文件的拥有着

做为所属用户,你对这个文件不喜欢,又舍不得删,嘿嘿,你可以给别人嘛,所以,你可以修改所属用户,把你名下的给别人。

指令:chown
功能:修改文件拥有者
语法:chown 参数 用户名 文件
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第15张图片
注意:把文件或目录的所属权给别人,也要看别人收不收,属于在执行前,都加上sudo

c)修改文件或目录的所属组

你也可以修改文件或目录的所属组
指令:chgrp
功能:修改文件或目录的所属组
语法:chgrp 参数 所属组名 文件名
常用选项:-R递归修改文件或目录的所属组
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第16张图片
问题来了:如何一次性更改所属用户和所属组呢?
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第17张图片

d)查看或修改文件的掩码

我们先要知道:(读写执行看后面三个数字)
新建文件的默认权限是=0666
新建目录的默认权限是=0777
但是事实上,我们新建的目录或文件,看到的权限往往不是上面的这个值。
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第18张图片
那是因为,创建文件或者目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建出来的文件权限是:mask & ~umask
格式:umask权限值
说明:超级用户的默认掩码值为0022,普通用户默认为0002
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第19张图片
那我们现在如何修改呢?
指令:umask
语法:umask 想改成的值

umask 755
umask //查看
umask 044//设置

【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第20张图片

目录的权限

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

于是问题来了~~
就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写
权限.
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第21张图片
别人写了一下午的东西,可以让看,结果不小心被你删了,这得多那啥啊!

粘滞位

所以,给目录添加粘滞位,防止这种情况发生。
【Linux入门】第二篇:shell命令及运行原理和Linux权限的概念_第22张图片
之后删除就不行了。
在这里插入图片描述
当一个目录被设置为粘滞位(用 chmod +t),则该目录下的文件只能由
1、超级用户删除
2、该目录的所属用户删除
3、该文件的所属用户删除

关于权限的总结

  • 目录的可执行权限值表示你可否再目录下执行命令
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,既然目录仍然有-r读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,无法查看目录里有什么

你可能感兴趣的:(Linux,linux)