Shell是什么?
Shell是操作系统外壳程序的统称,Windos中的图形化界面、Linux中的命令行外壳都是外壳程序。CentOS中的外壳程序被称为bash。
1、Shell承担用户和内核间的翻译工作
Shell是命令行解释器。
Linux严格意义上说的是一个操作系统,我们称之为"核心(Kernel)"。但是用户和内核沟通的学习成本很高,所以在内核外部有一层Shell外壳程序,将用户输入的指令翻译传递给内核,内核处理后,将结果返回给Shell,由Shell向用户传达指令的最终结果。
2、拒绝用户非法请求,保护内核
当用户输入非法指令时,shell不会再去询问内核结果,而是直接拒绝用户的非法请求。
3、派生子进程执行用户指令
因为Shell是用户和内核沟通的唯一桥梁,一般Shell不参与指令的执行,而是通过派生子进程的方式执行用户的指令。(子进程挂了,但Shell不会受到影响)
二、用户切换与提权
1、普通用户与root用户的切换
su//切换后路径不变
su -//切换后来到家目录
普通用户切换为root用户需要输入root密码,而root用户切换成普通用户无需 任何验证。
三、文件权限的理解
1、文件权限=角色的权限+文件属性
对于Linux中的文件权限,有的角色对这个文件有可读、可写、可执行的权限,而有的角色却只有可读权限。这是人的权限。
对于文件的可读、可写、可执行的属性,如果一个文件不具备可读权限,那么角色在访问文件时,也是没有可读权限的。
Linux文件权限管理命令
一、chown命令修改文件属主
在Linux系统中,chown命令可以更改文件的属主和属组
如果chown命令的对象是一个目录,则如果想要只更改这个目录自身的属主和属组,可以直接按照上述命令执行,但是如果想要更改这个文件夹下面的所有文件和子文件夹,则需要加上-R参数,表示递归修改。
二、chmod命令修改文件权限
在Linux系统中,chmod命令可以修改文件的权限。chmod修改文件权限由两种方式,一种是数字方式,另一种是表达式方式。
如果采用数字方式,则需要将Linux的读、写、执行权限分别按照4、2、1的数字计算出属主、属组和其他用户的权限,这样就可以得到三个数字,比如如果属主的权限是允许读、写和执行,属组的权利是允许读和写,其他用户的权限是允许读,则我们可以把这样的权利写作数字表达式764。
chown命令也可以给文件授予特殊权限,此时的数字表达式会有四位,其中第一位表示特殊权限,特殊权限SUID、SGID和SBIT分别表示4、2、1。