Linux shell初识及权限理解

shell初识

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“”程序,也就是所谓的shell,来与kernel沟通。

shell:实际上是一个命令的解释程序,是一个用户与系统内核沟通的桥梁。

内核:完成系统核心功能,对软硬件资源进行控制管理的系统集合—用户不能直接操作。

不让用户直接访问内核,是出去安全考虑。但是想使用内核的功能,该怎么做呢?只能通过操作系统提供的特定接口来完成对内核的访问,但是系统接口对一般程序猿不太友好,这时候,大佬们针对系统调用接口封装实现了一个个独立功能的程序。(比如浏览目录内容的功能程序),普通的用户想要浏览目录只需要执行这个程序就可以了。
Linux shell初识及权限理解_第1张图片

对于这个思路,大佬们实现了一个命令行解释程序shell:捕捉键盘的输入,执行对应的程序(输入ls字符,就执行ls程序)

在系统内部,是都已经将功能写好了,我们要使用功能,只需要输入相对应的字符即可。
在Linux系统下,根目录下有一个/bin目录,内部存放的就是系统中的命令功能程序;当我们在终端中输入命令名称之后,shell捕捉到我们的输入,就知道我们想要执行哪个程序,然后再/bin目录中找到对应的程序,执行,完成功能。一个终端被打开,默认就会执行一个程序,就是shell。

专有名称:我们(终端)所输入的命令被称为shell命令;shell其实就是一个程序,捕捉我们输入的命令名称,执行对应功能程序。

在Linux下,默认的shell是bash,还有一个shell是chsh。我们可以通过ls -l /bin/*sh指令查看当前shell
Linux shell初识及权限理解_第2张图片
第二个蓝色字体的bin/sh,它指向谁,谁就是默认的shelll。

在windows系统下,shell就是UI界面,我们的家庭电脑几乎都是windows系统,shell是UI界面,这样子就便于用户操作和使用电脑。

权限理解

Linux是一个多用户操作系统,多个用户可以同时操作。但这就引发了一系列的安全问题,假如公司两个人闹矛盾,互删对方的代码,这就引发很大的麻烦。所以我们引入权限,来控制操作对方文件的做法。
权限分为两种:
1、用户对系统的操作权限
linux将用户分为两类:管理员用户(root)、普通用户
sudo 这不是一个单独的指令,与其他的指令搭配使用,表示当前用户的这次操作临时进行提权,权利与root平等。
但是并不是所有用户只要使用sudo就可以提权,需要管理员和系统的信任。也就是需要配置。配置方法:
1.1 切换到管理员用户,执行指令visudo在这里插入图片描述
1.2会进入一个页面,我们需要配置的地方大概在90行左右。输入:90
Linux shell初识及权限理解_第3张图片
1.3进入后输入i即可对文件进行修改。会出现-- INSERT–字样表示可以开始修改
Linux shell初识及权限理解_第4张图片
1.4在下面添加用户名。例如:linux ALL=(ALL) ALL 格式与上面匹配
Linux shell初识及权限理解_第5张图片
Linux shell初识及权限理解_第6张图片
1.5完成后按esc再按:wq退出即可

2、用户对文件的访问权限
2.1、对于访问用户的分类:文件所有者u,文件所属组g,其他用户o。
2.2、对于访问操作的分类:可读r,可写w,可执行x。
Linux shell初识及权限理解_第7张图片

第一个字母d是文件的类型,为目录文件,这里先忽略第一个字母d。我们可以发现有3个红框,第一个红框对应的是文件所有者对文件访问的权限,第二个红框对应的是所属组对文件访问的权限,第三个红框对应的是其他用户对文件访问的权限。对应的访问操作没为-时,表示没有该操作的权限。例如在Downloads文件中,文件所有者可读可写可执行,所属组和其他用户都是可读可执行,但不可写。

权限除了字符表示还可以使用八进制数字表示
111 111 111 分别对应
rwx rwx rwx
这里再面试中经常会出题,例如
1、有一个文件权限位为654,请问所属组能够对文件进行什么操作?
解:所属组对应的是中间的数字5,二进制表示101,字符表示r-x 表示可读可执行
2、有个文件所有者可读可写不可执行,所属组只读,其他用户只读,如何表示权限?
解:所有者:rw- 所属组: r-- 其他用户: r-- 644

查看设置默认权限,可以通过umask指令查看
Linux shell初识及权限理解_第8张图片
直接输入umask会出现4个数字,第一个数字是特殊的占位符,可以忽略,只要看后3位,这3位数字是权限位的子网隐码。取反后为775,就可以知道默认权限。
但是创建文件时,默认权限会取消可执行这个操作,但是对目录并没有影响
Linux shell初识及权限理解_第9张图片
设置默认权限输入 umask 333,设置默认权限位的掩码为333。
Linux shell初识及权限理解_第10张图片
修改文件权限 chmod
例如修改a.txt文件的权限,使其他用户可写
执行前:
在这里插入图片描述

//chmod 用户类+权限 file
//chmod [augo] +/-[rwx] file
chmod o+w a.txt
//也可以通过八进制数字指定
//chmod 777 file

执行后:
在这里插入图片描述
修改文件所属用户

chown uname file

修改文件所属组

chgrp uname file

特殊权限:沾滞位–目录文件针对其他用户的一个权限
功能:每个人(其他用户)只能在目录当中创建文件或者删除自己的文件,不能删除别人的文件

设置沾滞位:chmod +t file
设置沾滞位之前:在这里插入图片描述

chmod +t a.txt

设置沾滞位之后:
在这里插入图片描述
可以发现权限有个T,表示开启了该权限。

你可能感兴趣的:(Linux,linux,shell,操作系统)