【Linux】shell外壳和权限

发布时间:2024年01月24日

shell外壳

什么是shell外壳呢?首先我们应该知道,用户和操作系统内核是不能直接接触的,因为首先操作系统本身就很难去操作,另一方面也是为了操作系统安全考虑,不能让用户直接去操作内核。
于是这时候,在内核和用户之间就有一个“屏障”负责传话,就是将用户的需求或指令传达给内核,将内核的执行结果翻译给用户。对于Windows操作系统来说就是图形化界面,对于Linux操作系统来说就是命令行。出于安全考虑,对于一些有危险的操作,在shell外壳这一阶段就拦截了用户的危险操作。
那么它是怎么实现的呢?shell外壳本质上也是一个执行起来的程序(也叫做进程),只要有用户使用就一直存在;没有用户的使用就不存在,因为根本没有存在的意义。它对于一些有危险或者用户自定义的指令,它会去创建子进程让其去执行。
在Linux操作系统中,这个shell外壳的名字就叫bash,他就是一个进程,我们也可以看到他正在运行
在这里插入图片描述

用户切换

Linux操作系统有两种用户,一种叫root,一种叫普通用户,我们如果想让普通用户转换为root+可以
在这里插入图片描述
在这里插入图片描述
可以用这两条指令,它们的区别是前者是以root身份重新登录一次,后者只是用户身份的变化,它们都需要输入root的密码,按CTRL+d可以退出
如果想让root用户转换为普通用户就需要
在这里插入图片描述
并且是不用输入密码的
如果想普通用户1转成普通用户2,就需要输入普通用户2的密码
在这里插入图片描述
那假如我们不想转换成root账号,但是我们需要root的权限去执行一些命令,这时我们就可以用root账号将普通用户加入到下面这个文件中
在这里插入图片描述

权限

首先我们要明白两点,就是权限是限制人的,更准确来说是限制角色。就跟你看电影要充会员一样,因为你不是会员,所以才会限制你。对于我们的Linux操作系统来说,角色共有三种,所有者(user),所属组(group)和other
另一点是操作对象一定要有满足人需求的属性,比如不能在csdn上看电影,因为他根本就没有这个属性,同理,在Linux操作系统上文件属性也只有三种:读(r),写(w)和执行(x)
既然只有这三种角色,那我们之前说的root和普通用户是怎么回事呢?root和普通用户这属于是具体的人,每个人都可以扮演多种角色
于是这样我们就能理解下面的图片了
在这里插入图片描述
我们看最左边这一组东西
在这里插入图片描述

它一共有十列,除去最左边的这一列一共有九列,其中三三一组,分别表示拥有者所属组和other的读写执行权限,有字母就表示有这个权限,是横杠就表示没有这个权限
在这里插入图片描述
再看这两列,左边表示拥有者,右边表示所属组,凡是不属于这两个的就叫做other
如何修改权限呢?
user简写为u,group简写为g,other简写为o,all简写为a

chmod a/u/g/o +/- r/w/x filename

比如说
在这里插入图片描述
在这里插入图片描述
确定一个人的角色时,从u到g到o,只要确定了就不再判断后边
因为一个角色的权限有还是没有就两种情况,可以看作二进制,而每种角色有三种权限,这就可以看作八进制,比如111就是7,那么我们在改权限时就可以用八进制,比如
在这里插入图片描述
就是给所有角色加上所有权限,别的以此类推

文章来源:https://blog.csdn.net/2201_76024104/article/details/135774009
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。