🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸
文章目录
一、Shell运行原理以及bash
Shell是一种外壳,命令行解释器
将使用者的命令翻译给核心处理,同时,将核心的处理结果翻译给使用者
我们通过图形化界面和Linux当中的指令操作其实就是在用OS提供的外壳程序来访问OS的
如果让人直接访问操作系统
a.操作成本特别高
b.人会犯错,带来安全隐患
所以,设计者不会让人直接操作OS
外壳程序存在的价值和意义
1.用户和操作系统交互的中间软件层
2.可以在 一定程度上起到保护操作系统的作用
shell是对所有外壳程序的统称,bash外壳程序是shell外壳程序的一种
bash一旦跑起来就是死循环,输入指令的前面就是它运行起来打印出来的东西
二、Linux权限
首先权限只是拿来限制普通人的,root超级用户不受限制
权限只会被认证一次,如果是拥有者,那么只看拥有者的权限,如果不是,才去看是不是所属组,所以,如果你既是拥有者又是所属组,但是拥有者没有权限,那么也是访问不了的
Linux下,只以第一列的字符来区分文件,不以文件后缀来区分,并不代表不可以用,可以方便自己看,而gcc等式Linux环境下的一个软件,是需要后缀来编译的,所以建议使用后缀来命名
普通用户和超级用户是一个确定的人
拥有者,所属组,other是这个人的角色
拥有者:文件属于谁
所属组:文件属于哪一个组,对特定的文件进行组内管理
other:不属于上面的任何一个,就是other
是没有other的,因为如果不是拥有者或者所属组,那么他就是other,所以没有必要去标other
r位置永远表示的是读权限 有就是r没有就是-
w位置永远表示的是写权限 有就是w没有就是-
x位置永远表示的是可执行权限 有就是x没有就是-
三、权限管理
1.改角色
用chown来更改文件的拥有者
chown 拥有者用户名 文件路径 //对于超级用户
sudo chown 拥有者用户名 文件路径 //对于普通用户
chgrp //使用方法与chown类似
2.改属性
a. ugo对wrx进行±
使用chmod修改权限
u : 代表拥有者user
g :代表所属组group
o :代表other
chmod u+r/u+w/u+x 文件路径
chmod u+r,u+w,u+x 文件路径//一次修改多个,
这样写中间打括号
chmod u+rwx 文件路径//一次修改多个
//所属组和other类似用法
//除了+之外还能-
如果操作的时候没有权限,比如没有x执行权限,那么就会报Permission denied,没有权限
b.八进制方案
八进制 :1~7
用三个bit可以正好表示一个角色拥有的权限,比如下图:
四.常见权限问题
1.目录权限
进入一个目录需要的权限是可执行x
如果想查看这个目录的文件列表ls,就不让看了,因为没有读权限r
如果想要在目录下创建或删除目录就需要写权限w
2.umask权限掩码
首先,我们创建文件和目录的时候,它的权限为什么默认就是这样呢?
Linux默认:
一个目录被创建,起始权限是从777开始的
一个普通文件被创建,起始权限是从666开始的
那怎么出现上面这种情况的呢---->umask权限掩码
umask 查看umask权限掩码
凡是在umask当中出现的权限,都不应该在最终权限中出现,也就是说:
最终权限 = 初始权限 & (~umask)
umask XXXX 设置权限掩码
3.粘滞位(只能给目录设置)
粘滞位是用来防止在一个公共目录下,自己的 文件被别人删除了的。因为删除里面的东西,本来就是该目录的权限,所以粘滞位是给目录设置的。
大家所有用户都在一个共同的路径下,对该目录具有读写执行的权限rwx,如下图:
如果是这样的话,那么自己在这个目录下的文件就有被别人删除的风险了,而如果想在这个共享目录下,只删除自己的文件,而不能删除别人的—> 粘滞位
chmod +t 共享目录 //增加粘滞位
chmod -t 共享目录 //去掉粘滞位,粘滞位谁加
的就要谁去掉(除了root之外)
当看到other这个位置的执行权限x变成t,就设置好了,t就叫做粘滞位权限,有了这个权限,就只能在该目录下删除自己拥有的文件了