目录
操作系统的"外壳"程序
外壳程序是什么?
为什么存在外壳程序?
外壳程序怎么运行操作?
权限
什么是权限?
权限的本质?
Linux中的(人)用户权限?
su和su -的区别
sudo的指令提权
Linux中的角色权限?
Linux中的(事物属性)文件权限?
命令扩展
操作系统的"外壳"程序
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
- 将使用者的命令翻译给核心(kernel)处理。
- 同时,将核心的处理结果翻译给使用者。
- 大部分命令在磁盘当中,是系统当中的一个可执行文件。
- 命令行提示符其实是一个字符串。包括我们的指令从键盘输入到终端界面都是字符串。
- 用户执行某种功能的时候,不是直接让操作系统执行对应的指令的,而是先交给外壳程序
- windows的外壳程序就是图形化界面
- windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
- Linux的外壳程序就是命令行提示符
- shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
如何理解?为什么不能直接使用kernel?
外壳程序是什么?
介于用户和操作系统之间的软件。如Linux的命令行解释器,Windows的图形化界面。
为什么存在外壳程序?
每个用户写的程序和访问的指令都是存在风险的,我们必须去有效规避。
- 用户不善于和OS之间交互
- shell外壳的存在,可以对请求进行合法性检查,变相的保护OS
外壳程序怎么运行操作?
(可能存在用户一直非法访问)可以安排一个实习生。失败都在实习生,不接受任何失败的影响。
创建子进程,让子进程进行执行。
bash基本都会给我们创建一个子进程:帮助用户进行命令行解释。bash只需要等待即可。
bash/sh相当于媒婆中的王婆/李婆/张婆中的一员。
权限
什么是权限?
权限是通过一定的条件,拦住一部分人,给另外一部分人权利,来访问某种资源。
(存在有无/能否的问题!)如vip ,小区门禁等等。
权限的本质?
- 权限1:担任的角色有关(人):若你是腾讯会员的vip,拥有vip的资源是因为你是腾讯会员vip,并不是因为是你。 Linux中【具体的角色】是需要【具体的人】来扮演的!!
- 权限2:事务的属性有关:你并不能在腾讯刷题,或者在抖音刷题,这是因为某种权限对应某种功能(事物的属性)。
权限=角色(人)+事物的属性
Linux中的(人)用户权限?
Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以再linux系统下做任何事情,不受限制。
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
- 转化:su 【用户名】 su - 【用户名】 (直接转超级用户不需要输入用户名)
- ctrl+d:可以回退到转化前
- 普通用户和root密码不要设置成一样的!
【普通用户转超级用户】
【超级用户转普通用户】
【普通用户转普通用户】
su和su -的区别
su是在原本登录基础上切换。
su - 是重新登录。
建议用:su -
sudo的指令提权
sudo可以让普通用户拥有以root权限去执行命令。
(用户不想直接变成root,但是想以root的身份执行一个工作)
sudo:输入的密码是普通用户的密码!
(在vim再解决报错)
Linux中的角色权限?
- 文件和文件目录的所有者:u---User(拥有者)
- 文件和文件目录的所有者所在的组的用户:g---Group (所属组)
- 其它用户:o---Others (其他人)
为什么会有所属组的存在?
Linux具有组的概念,主要是在多人协作的时候,更好的进行权限的管理!
Linux中的(事物属性)文件权限?
下篇博客。
命令扩展
◆ 安装和登录命令:
login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:
file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:
df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操作命令:
ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:
passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:
tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
🙂感谢大家的阅读,若有错误和不足,欢迎指正!