文章目录
一.预备知识:
历史上学习的大部分命令就是磁盘当中(系统当中)的文件
而前面这个东西就是命令行提示符,就是一个字符串,由printf打印出来的
后面要输入的就是一串字符串,从字符串中获取指令
用户执行某种功能的时候,不是直接让操作系统执行对应的命令,而是先交给外壳
是不是每次登入windows电脑最后的步骤都是加载桌面
那么就有疑问了,为什么不能直接访问内核,外壳如何做到的?
二.外壳
这里讲过小故事:
什么叫做外壳程序:
![]() | ![]() |
---|---|
![]() | ![]() |
那么问题来了
张三为什么不自己找如花呢?因为张三不擅长和对方打交道(见到个女生就哆嗦)
外壳程序就是介于用户和操作系统之间的软件(命令行解释器)
为什么存在这个外壳程序:
为什么张三不自己去?
张三(用户)不善于和如花(操作系统)交互
故事第二阶段:
![]() | ![]() |
---|---|
![]() | ![]() |
张三(用户)的请求是非法请求,王婆(外壳)都不通过,变相的保护了如花(操作系统)
说明shell外壳的存在,可以对请求进行合法性检测,变相的保护OS
非法指令:
怎么办
故事第三阶段:
这样子,每次张三找王婆,王婆都排一个实习生,成不成王婆不管,反正找人去了
王婆就一直都做自己的工作,不受张三的影响
派实习生的动作就是bash为我们创造一个子进程(帮用户进行命令解释),bash(王婆)只要等待即可。
这里说以下shell 和bash的区别:
shell是媒婆
bash是王婆
还有sh是李婆
三.Linux权限
什么是权限
vip,门禁
就是通过一定的条件,拦住一部分人,给另一部分的人权利,来访问某种资源
权限的本质
权限和人有关(有些人看电影有广告,有些人没有)
权限和事物的属性有关(去Letcode刷视频,去爱奇艺刷题,不合理)
权限 = 人(角色) + 事物的属性有关
Linux中的用户
由root与普通用户互相转换
su - 也可以普通用户变root
su 和 su - 的区别就在于
su - 是重新登入root,所处路径就是/root
su所处路径不变
root变为普通用户不用输密码,直接变
以普通用户的身份执行root的工作
当然,如果不做处理普通用户用不了,里面牵扯到vim和权限,到vim会解释
Linux中文件的权限
快速修改权限的做法
一个文件的权限谁能修改?
a.文件的拥有者
b.root
在解答这个问题之前了解一下如何修改权限:
uers,group,other,all
对比权限的有无
拥有者权限:
无权限:
有权限:
结论:对于普通用户,自身要受到权限的约束,即便这个文件是自己的
但是对于root再说,虽然属于other的角色,却不受于普通用户文件的权限影响
更霸道的是root还能改普通用户文件的权限
说明root不受权限的影响
但是能限制其它普通用户
所以权限存在的意义:保证普通用户的文件的一般安全性!
下面sjl不是拥有者,是所属组,但还是没有权限
这是因为对用户身份进行识别,只识别一次。
拥有者没权限,所属组就不会看了
这里拿root验证一下:
改所属组的命令就是:
上面就涉及到修改权限的第二种做法
权限 = 用户角色(具体的人) + 文件权限属性
第一种是改变的文件属性
第二种是改变文件的角色
但是文件不能随便给,万一给个病毒被接收到了,所以只能由root强制去给
拥有者和所属组可以一起改:
就会有人问了,为什么不见修改other的指令呢?
因为不需要,修改了拥有者,所属组,other自然也就变了
修改权限的第二套做法
那么就可以写成:chmod 八进制 filename
文件属性
这里举个c的例子:
下面这个是显示器终端的文件
登入一个终端,显示了2个
这里登入两个终端,显示了3个
有什么用呢?显示器终端也是文件,举个例子:
如何理解x
可执行权限VS可执行的区别
能执行 = 可执行权限 + 是一个可执行文件
谈一下目录权限
要进入一个目录需要什么权限???
进入一个目录需要x的权限
目录r的权限:用户是否能查看指定目录内的信息
目录w的权限:决定用户是否能在指定目录内新建,修改,删除文件
所以更加明确了:
那么问题就来了,在我的目录下,里面有别人的文件,我可以删别人的文件吗?
答案是可以!!!
虽然对于你的文件来说,我是other
但是我的目录为什么你要写文件
Linux创建文件时的默认权限:
在Linux种创建文件时,相同类型文件创建时权限都是一样的。
创建普通文件的初始权限是:0666,去掉的x
创建的目录文件的初始权限是:0777,包含的x
最终权限 = 初始权限 & (~umask)
umask是Linux中默认的权限掩码
umask的默认值不同是正常的
创建文件的时候,要从起始权限中,过滤掉(不是简单的除法)在umask中的权限
以普通文件为例:
扩展
那肯定有人问,多人合作做同一个文件,权限如何做到共享,并且不被别人捣乱
首先肯定得建在非用户目录下创建,才能互相访问
然后问题是共享的话,所共享文件的权限就得打开,其他人可以删,就是other
于是有了"沾滞位" chmod + t 作用是只能被
1.超级管理员删除
2.该目录的所有者删除
3.该文件的所有者删除