目录
shell运行原理
Windows以图形化界面为交互方式,而Linux以命令行界面为交互方式。
图形化界面和命令行界面都是为了让用户进行相关操作,而图形化界面和命令行界面就是我们所说的“外壳程序”。
Linux严格意义上说是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户不能直接使用kernel,而是通过kernel的“外壳程序”,也就是所谓的Shell,来与kernel沟通。
Shell运行原理:
创建子进程,让子进程进行命令行解释。
子进程出现任何问题,都不影响父进程Shell
对比到Windows当中就是,我们每运行一个程序就是创建了一个子进程,例如,登录微信、QQ。而这些子进程当中任何一个进程出现问题,都不会影响父进程,例如,当你的QQ出现卡死情况(程序异常)或你的QQ被关掉(程序终止),但其他子程序仍然可以运行。
Shell只是所有外壳程序的统称,例而在centos 7当中的外壳程序名叫bash。
1.Linux的权限概念
2.Linux权限管理
2.1文件访问者的分类
linux下权限=人+事物的属性
一:文件访问者的分类(人):
1.文件和文件目录的所有者:u---User
2.文件和文件目录的所有者所在的组的用户:g---Group
3.其它用户:o---Others
2.2文件类型和访问权限
2.3文件权限值的表示方法
补充:在linux下万物皆文件,并且在linux下不已文件后缀区分(gcc g++是区分文件后缀,它两是系统上的命令)。
1.字符法表示
2.8进制数值表示方法
举例说明:
3.权限的设置和修改
3.1chmod
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限说明:只有文件的拥有者和root才可以改变文件的权限
chmod使用
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
例如:观察权限的变化
也可用8进制进行设置:
3.2chown
功能:修改文件或目录的拥有者
格式:chown [参数] 用户组名 文件或目录
常用选项:-R 递归修改文件或目录的拥有者
举例:
修改文件的拥有者需要root用户进行操作,若是普通用户则需要进行权限提升,也可以使用chown指令同时修改文件的拥有者和所属组,将拥有者和所属组的用户名用冒号隔开即可。
3.3 chgrp
![](https://i-blog.csdnimg.cn/blog_migrate/6279c5eac16c1a3a4e8cc7a58a504e8a.png)
若不是root,修改文件的所属组也需要进行权限提升。
3.4umask
功能:
1.查看或修改文件掩码
2.新建文件夹默认权限=0666
3.新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。
例如:
假设默认权限是mask,则实际创建的出来的文件权是:mask&~umask.
umask 权限值说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
例如:
修改umask:
4.目录的权限
1.可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
2.可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
![](https://i-blog.csdnimg.cn/blog_migrate/12ba6db92951d925261442946e56c083.png)
补充:如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限。
5.粘滞位
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
举例:目录pp 中多了个t
虽然目录被加上了粘滞位,但如果用户有该目录的可写权限,则不影响其在该目录下创建文件