一、Shell命令及运行原理
1.1通常说的计算机体系结构指的是什么
通常意义上的计算机体系结构指的是芯片:
如锐龙amd,英特尔酷睿intel core
他们分为
x86:32位
x86_64:64位
两种
1.2广义上的Linux系统分为哪些部分,shell的简单定义是什么
广义上的Linux系统=Linux内核+Linux外壳
为什么需要Linux外壳呢?
原因是用户无法直接访问Linux内核,也不擅长访问
因此可以引申出shell的简单定义:命令行解释器
1.3shell的运行原理简介
由1.2中shell简单定义不难看出,shell的正常运行十分关键,它决定了用户能否正常使用操作系统,为了保证外壳的安全性:一般运行过程中,外壳程序会创建子进程,让子进程代替其完成命令行的解释
1.3补:当前使用的外壳程序是bash,与shell是什么关系?
当前使用的Linux系统种,外壳程序在/usr/bin/bash下
bash可以说是一种具体的shell
就像教师和王老师之间的关系
二、Linux中的权限问题
2.1切换用户指令su
要进行用户切换,指令基本使用规范是:
su+[用户名]
回车
①若初始为普通用户
1>换root:
su -
回车
输密码
2>换别的普通用户
su+[用户名]
回车
输密码
②若初始为root
更换为别的用户:
su+[用户名]
回车
(无需输入密码)
注:任何用户切换后,都可以通过热键ctrl+d退回到上一用户
2.2普通用户提权指令sudo
有时会遇到一种情况:仍然使用普通用户的情况下需要利用root专属权限
使用规范:
sudo+[命令]
回车
但要注意:不是任何一个普通用户都可以使用sudo进行提权的,需要在
vim/etc/sudoers
进行配置,而这一目录是属于root的,所以并不会出现未知情况下越权的问题
2.3对于一个文件来说,系统中有三种访问者:
他们分别是:拥有者,所属组,other
如ll展示目录mydir
观察发现,在这里拥有者与所属组是相同的,其实很多情况下都相同,那么所属组的作用是什么呢?
为了进行更细粒度的权限管理
如两个技术团队使用同一台Linux机器进行编程,而A组成员直接要可以相互查看但不允许B组成员查看,这时所属组就用的上了
2.3补:3种访问者与普通/root用户都因权限进行划分,它们有什么区别
可以理解为扮演角色与具体扮演的人之间的关系
如:华为员工名为张三,华为员工是身份,对应三种访问者;张三是拥有这一身份的人,对用普通/root用户
⭐2.4文件权限属性
2.4.1文件权限的表示方式
红色框中表示的是文件权限,共分9列,每三列为一组,分别表示拥有者,所属组,other三组
r,w,x分别代表读权限,写权限,可执行权限;-代表不具有当前权限
2.4.2更改文件权限属性的方法
①法一:利用访问者种类的代号与rwx代表更改内容
基本规范:
chmod [访问者种类代号]+[增减代号]+[文件名]
回车
访问者种类代号:u代表拥有者(User);g代表所属组(Group);o代表other;a代表
增减代号:+待变新增权限;-代表移除权限
例如:
chmod u-rwx file 拥有者移除全部权限
chmod g+w,g-rx file 所属组移除读,运行权限,增加写权限
chmod a+rwx file 全部三种访问者增加全部权限
②法二:利用八进制代表设置好的权限情况
基本规范:
chmod+[所需权限对应的八进制数]+[文件名]
回车
依据2.4.1中分析,一共有三种访问者,每种访问者对应的三个权限我们标识为一个三位二进制数
三位二进制取值在0-7,所以我们可以把它化为一个八进制数来表示,例如
希望的权限是:
rw-rw-rw-
对应的三组 三位二进制 是:110 110 110
转换为八进制是:666
此时指令为:
chmod 666 file
回车
2.4.3权限冲突时的优先级
假如权限是:
---rw----
拥有者与所属组相同,都是名为normal的普通用户,那么normal下可以进行写入吗?
答案是不可以,因为确定身份的过程只会进行一次,顺序依次为:拥有者,所属组,other
在使用者为拥有者的情况下,会优先看拥有者的权限
2.4补:是否有可执行权限与文件是否可执行是不等价的
广义上来讲,权限=人+事物的属性在本文环境下,也可以理解为使用的角色+文件权限属性
文件可执行=使用者有可执行权限+文件本身具有可执行的属性