Linux操作系统基础精讲篇第2讲:深入理解Linux权限及相关运用

       哈喽,各位读者们大家好,今天博主为大家带来《Linux操作系统》的第2讲,虽然到目前为止阅读博主文章的读者量较少,但这也阻挡不了博主坚持学习,坚持分享,坚持创作的步伐。今天这一讲主要介绍shell命令及其运行原理和Linux非常重要的权限相关知识

附上第1讲文章链接:Linux操作系统基础精讲篇第1讲:基本核心指令讲解_King_lm_Guard的博客-CSDN博客https://blog.csdn.net/King_lm_Guard/article/details/125964348?spm=1001.2014.3001.5501

目录

1、shell命令及运行原理

2、Linux权限

2.1、用户组成

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

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

2.4 文件权限值的表示方法

2.5 文件访问权限设置方法

# 1、chmod

# 2、chown

# 3、chgrp

# 4、umask (权限掩码)

2.6 目录权限

2.7 粘滞位

3、权限总结


1、shell命令及运行原理

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

主要包含:

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


      对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符或者运行起来一个应用程序)
      shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

补充:博主使用的操作系统发行版本是centos7.6;远程终端软件:Xshell 5(用于基础学习)

2、Linux权限

2.1、用户组成

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

性质:
超级用户:可以再linux系统下做任何事情,不受限制,具有Linux下的最高权限。
普通用户:在linux下做有限的事情,要受到权限的约束。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]  

功能:切换用户

补充:

1、超级用户只能有一个;普通用户可以有多个。

1、在命令行窗口输入:"su"或者"su -"可以从普通用户进入超级用户。

2、 切换用户可以使用Ctrl D命令, 或者使用"su 普通用户名",切换到普通用户。 

3、whoami 指令介绍:直接输入在命令行输入“whoami”可查看当前操作系统的使用用户。

 可以看出:Linx操作系统是一个多用户操作系统。

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

文件和文件目录的所有者: u---User
文件和文件目录的所有者所在的组的用户: g---Group  
其它用户: o---Others 

补充:对于Group来说,可以对文件或文件目录的所有者指定的特定文件进行组内管理,User通过在组内开放权限,可以让组内其他成员访问,同时避免Others访问。

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


 文件类型:

d:文件夹
-:普通文件

l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

补充:

        Linux下不以文件后缀区分文件类型。以第一列的第一个字符表示文件类型,但也并不是不代表不可以使用,在系统层面没有意义,主要是给用户自己看的(这里是指Linux环境下)。

        但诸如gcc、g++等软件需要有文件后缀区分文件类型要求和这里不是一个概念。


基本权限:

1、读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
2、写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
3、执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
4、“—”表示不具有该项权限

补充:

rwx三者之间的顺序是固定不变的,不可以颠倒顺序后者调整顺序。

2.4 文件权限值的表示方法

1、字符表示法

2、8进制数值表示法

 在后面将会讲解如何操作。

2.5 文件访问权限设置方法

# 1、chmod

功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限。
说明:只有文件的拥有者和超级用户(root)才可以改变文件的权限。


用法1:结合上一讲分析的字符表示法

格式:用户表示符"+"或者"-"或者"="权限字符符号   文件名

说明:

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


示例:


用法2:使用三位8进制数字


# 2、chown

功能:修改文件的拥有者
格式: chown [参数] 用户名 文件名

示例:

 补充:

1、超级用户可以不受权限的限制,就算文件拥有者,所属组都是别人的,自己也同样可以操作并读写执行文件,也就是说,权限对超级用户就是透明的。

2、如果是普通用户是文件拥有者,其也不可以修改文件的所属组的权限,同时也不可以把文件拥有权给root或者其他普通用户。

 3、如果需要实现执行2中描述的限制的功能,可以利用:

sudo chown 用户名 文件名

        sudo的用法:执行后续命令,要以root的权限级别来执行,这是一种临时具有root权限的用法。

      但如果用户想执行sudo,提升权限,需要该用户添加在信任用户里,才可以执行sudo,添加用户到信任列表是需要root身份的。(在下一讲中会讲解如何操作)


# 3、chgrp


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

示例:


# 4、umask (权限掩码)

功能:查看或修改文件掩码

Linux操作系统默认:新建文件默认权限=0666; 新建目录默认权限=0777。
       但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。

假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask。
格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。


示例: 最终权限 =起始权限& (~umask)

 补充:权限掩码:凡是在umask中出现的权限,都不应该在最终在最终权限中出现。可以自主修改权限,利用命令:umask 0777  诸如前面这种类型,可以实现自主定义权限。

2.6 目录权限

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

总结:

进入目录需要:x权限;

查看目录下面的文件列表需要:r权限;

要在目录下创建文件或者目录需要:w权限;


!!!补充重点知识:

        如果我们既是文件的拥有者也是文件的所属组,此时如果把文件拥有者的权限取消(取消r/w/x其中或者全部),假设此时对应的所属组具有相应的权限功能,那么由于权限具有只认证一次的特性,此时,后面所属组的权限作用仍然不起作用,比如:d---rwxr-x zk  zk 
        此时在文件拥有者中,均无文件的读写执行功能,虽然在所属组中,其拥有文件的读写执行功能,但由于权限只能被认证一次,所以后面所属组的权限不起作用,即文件仍然不能够被读写和执行。
        简而言之就是:如果我们既是文件的拥有者,又是文件的所属者,那此时关于文件或者目录的权限问题只关注文件拥有者这一栏,不用考虑所属组。因为权限一旦判定你是拥有者,就不用管后面的所属组的权限问题了。(对于普通用户)。

2.7 粘滞位

增加粘滞位:chmod +t  目录名称

符号说明:

       设置该符号是为了防止:其他用户具有目录的写权限,无论是否有这个目录下的文件的读、写权限,其都可以删除目录中的文件的行为。(也就是别人不能读写文件,但能删除文件)

       如果不防止这种行为,如果A和B两人都是普通用户,然后共同在Boss创建的目录下工作(也就是说A和B均有此目录的写权限),此时如果A创建了文件A.txt,如果不设置粘滞位,则B虽然没有A.txt文件的权限,但依然可以删除该文件,这种行为是不被允许的,基于此,提出了粘滞位的概念。

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:
1、超级管理员删除;
2、该目录的所有者删除;
3、该文件的所有者删除;


补充:

粘滞位取消:chmod -t 目录名称

但要注意:取消粘滞位,一般是谁设置谁才能取消。

删除文件是具有目录的权限说了算,不是该文件的权限说了算。


3、权限总结

       目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录。

      即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。


##欢迎大家点赞、支持、关注!!!同时欢迎各位读者献计献策##

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值