Linux权限+Shell和Linux的关系

1.Shell存在的意义及作用

1.1对于Shell的认知过程

Linux是什么?

  1. Linux是一套免费使用和自由传播的类Unix操作系统,它是一个基于POSIX的多用户、多任务、支持多线程多CPU的操作系统。Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途。Linux的设计理念是简单、高效、稳定和安全。Linux系统可以运行在各种硬件平台上,包括个人电脑、服务器、移动设备等

  2. Linux是一个操作系统,称之为“核心kernel“
    一般用户不能直接使用kernel 而是通过kernel的**“外壳”程序**---- shell,来与kernel沟通。windows是图形化界面

如何理解?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter).

Shell主要包含:

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

windows系统呢?

对比windows GUI,操作windows 不是直接操作windows内核,而是通过图形接口,点击,完成操作

比如进入D盘的操作,双击D盘盘符

shell对于Linux的作用

shell 对于Linux,有相同的作用,主要是对指令进行解析,解析指令给Linux内核。再通过内核运行出结果,通过shell解析给用户。

为什么不能直接使用kernel?

  1. 操作成本特别高
  2. 人会犯错,会带来不安全因素

bash是什么?

在这里插入图片描述

在这里插入图片描述

1.2Shell/图形化界面外壳程序的意义

  1. 用户和操作系统交互的中间软件层
  2. 一定程度起到保护操作系统的作用
    [对于无理指令可以拒绝执行并报错 对于本来能执行的指令也可以关闭权限不再执行]
  3. 外壳程序接收用户请求后 交给子进程执行
    在这里插入图片描述

2.对Linux权限的理解

2.1对Linux权限的认知过程

对于Linux用户的认识和理解

Linux下有两种用户:超级用户(root)、普通用户。
超级用户:拥有最高权限 不受权限约束 可以在linux系统下做任何事情,不受限制
普通用户:可以有多个 受权限约束 在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
在这里插入图片描述

用户之间的切换

命令:su [用户名]
功能:切换用户。[切换权限]

  1. 要从root用户切换到普通用户user,则使用 su user

  2. 要从普通用户user切换到root用户则使用 su root / su - / su,此时系统会提示输入root用户的口令。

    成为root用户后 再次 su - 会输出最后一次登录时间
    在这里插入图片描述

  3. 换成root后 输入ctrl + d可退到普通用户 如果有的话

  4. 从用户A换到用户B 要输入用户B的密码

对Linux权限的理解

  1. 用户对当前动作没有权限访问
  2. 当前事件压根就没有被访问/执行的必要: 用充电器打游戏: 充电器没有打游戏的属性 玩家当然没有对应的权限
  3. 权限是什么? 权限是某一件事情是否允许被当前用户执行包括这个事情具不具有这个属性用户具不具备这个能力

2.2对于Linux下ll指令显示的文件属性的认识

在这里插入图片描述

对于文件的后缀:

  1. 在系统层面没意义: Linux操作系统下,不以文件后缀来区分文件类型 通过上述图片的第一个字符区分
  2. 但是文件类型可以给用户看 .exe .out .cpp 用户一看就知道是什么

但是如果执行以下指令 会报错 mv test.c test.txt gcc test.txt 为什么报错?不是不易后缀区分吗???

gcc不是linux操作系统 他只是linux操作系统下的一个软件

对于用户的 三种身份的认识: 拥有者 所属组 其他人

在这里插入图片描述

领导想要查看小红的test.c文件 怎么办???

把领导的权限打开

领导属于"其他人" 那么B组的也能看到 怎么办???

把领导加入到A组 那么test.c可以被拥有者/所属组查看

如何表述一个文件的权限?

在这里插入图片描述

如何操作?chmod指令

在这里插入图片描述

没有权限会发生什么事情???

对于普通用户

在这里插入图片描述

对于root
  1. root执行chmod a-rwx file.txt 除了不能执行 还可以读还可以写
  2. root还可以把不属于自己属于其他普通用户的文件权限改掉 此时普通用户无法执行对应操作 而 root却仍然可以进行相应操作

八进制法修改权限

在这里插入图片描述

把拥有者A的文件交给其他拥有者 也会引起拥有者A的权限改变

假定file.txt的当前拥有者为usrb
chown usra file.txt   (当前用户为file.txt的拥有者usrb 不是root 则此操作不被允许)
改为root后:
 
 chown usra file.txt   //ok
 chogrp usra file.txt  //ok
file.txt原来的拥有者现在已经成为other那么他将失去对此文件的rwx权限

如何把交出去的文件再拿回来???

普通用户依然没法拿回来 两个办法:

  1. 输入root密码 改为root 拿回来
  2. 利用sudo chown usrb file.txt 输入usrb密码 拿回来sudo: 以root权限级别来执行后续命令
  3. sudo chown usra file.txt sudo chgrp usra file.txt ===>> sudo chown usra:usra file.txt

那岂不是人人都能执行root能执行的操作 root的存在还有什么意义?

不是所有用户都能执行sudo 用户想通过执行sudo提升权限的前提是,该用户被root添加到了信任列表

如何修改other?

other不确定 other是相对的 在修改own/grp的同时 other也在改变

3.常见的权限问题

3.1目录权限

什么叫做权限只被认证一次?

  1. 假定file文件当前拥有者为a a又执行了chmod u-rwx file 则此时a失去了rwx权限 file文件是属于a的 只被认证一次 不管所属组的权限是什么
  2. 如果file文件拥有者不是a但是属于a的那一组 那么只看所属组权限 不看拥有者权限

进入一个目录需要什么权限?

需要x: 执行权限

读写rw限制了什么呢?

r: 显示信息入l -a
w: 创建文件 如touch mkdir/删除文件

3.2umask

linux默认设置: 目录起始权限: 777-------------普通文件起始权限: 666

在这里插入图片描述

观察上图 我们发现和设置的不一样 目录是766 文件是644 怎么回事??

在这里插入图片描述
实际上这之间还存在一个叫做权限掩码的东西

umask的作用

查看/修改文件掩码 新建文件夹默认权限0666 新建目录默认权限0777

实际所创建的文件和目录,看到的权限往往不是上面这个值

创建文件或目录还要受到umask的影响。假设起始默认权限是mask,则实际创建的出来的文件权限是:
mask & ~umask 超级用户默认掩码值为0022,普通用户默认为0002[可以通过umask指令 自定义权限掩码 使得创建后的文件按照你自己的意愿设定权限]
在这里插入图片描述

拓展补充file指令: 辨识文件类型。

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿猿收手吧!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值