shell原理及Linux权限

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、指令

1.tar指令重要

打包/解包不打开它直接看内容

tar [-cxtzjvf] 文件与目录 …
参数

-c 建立一个压缩文件的参数指令(create 的意思)
-x 解开一个压缩文件的参数指令
-t 查看 tarfile 里面的文件
-z 是否同时具有 gzip 的属性亦即是否需要用 gzip 压缩
-j 是否同时具有 bzip2 的属性亦即是否需要用 bzip2 压缩
-v 压缩的过程中显示文件这个常用但不建议用在背景执行过程
-f 使用档名请留意在 f 之后要立即接档名喔不要再加参数
-C 解压到指定目录

image-20221126044223531

image-20221126044316581

image-20221126044421415

image-20221126044605933

image-20221126044849427

2.热键

[Tab]按键—具有『命令补全』和『档案补齐』的功能
[Ctrl]-c按键—让当前的程序『停掉』
[Ctrl]-d按键—通常代表着『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思另外你也可以用来取代exit

image-20221126045440298

3.bc命令

bc命令可以很方便的进行浮点运算

image-20221126045809468

4.uname –r指令

语法 uname [选项]
功能 uname用来获取电脑和操作系统的相关信息。
补充说明 uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

image-20221126051515992

常用选项

-a或–all 详细输出所有信息依次为内核名称主机名内核版本号内核版本硬件名处理器类型硬件平台类型操作系统名称

image-20221126050430452

image-20221126050500097

image-20221126050947947

5.关机

语法 shutdown [选项] ** 常见选项 **

-h将系统的服务停掉后立即关机

-r在将系统的服务停掉之后就重新启动

-t sec -t后面加秒数是几秒后关机的意思。

6.以下命令作为扩展:

安装和登录命令 login、 shutdown、 halt、 reboot、 install、 mount、 umount、 chsh、 exit、last
文件处理命令 file、 mkdir、 grep、 dd、 find、 mv、 ls、 diff、 cat、 ln
系统管理相关命令 df、 top、 free、 quota、 at、 lp、 adduser、 groupadd、 kill、 crontab
网络操作命令 ifconfig、 ip、 ping、 netstat、 telnet、 ftp、 route、 rlogin、 rcp、 finger、 mail、 nslookup
系统安全相关命令 passwd、 su、 umask、 chgrp、 chmod、 chown、 chattr、 sudo ps、 who
其它命令 tar、 unzip、 gunzip、 unarj、 mtools、 man、 unendcode、 uudecode。

二.shell命令以及运行原理

Linux严格意义上说的是一个操作系统我们称之为“核心kernel “ 但我们一般用户不能直接使用kernel。
而是通过kernel的“外壳”程序也就是所谓的shell来与kernel沟通。如何理解为什么不能直接使用kernel
从技术角度 Shell的最简单定义命令行解释器command Interpreter主要包含

将使用者的命令翻译给核心kernel处理。同时将核心的处理结果翻译给使用者

对比windows GUI我们操作windows 不是直接操作windows内核而是通过图形接口点击从而完成我们的操作比如进入D盘的操作我们通常是双击D盘盘符.或者运行起来一个应用程序。
shell 对于Linux有相同的作用主要是对我们的指令进行解析解析指令给Linux内核。反馈结果在通过内核运行出结果通过shell解析给用户。

image-20221126052308214

image-20221126052448055

外壳程序

bash—CenOs7下的具体的命令行解释器王婆

shell----外壳程序的统称媒婆

三.权限

1.权限的概念

访问的对象天然可能没有这种“属性”。

一件事情是否允许被谁做

权限=人+事务属性事务就是文件属性都是读写执行

2.Linux下有两种用户超级用户root、普通用户

超级用户可以再linux系统下做任何事情不受限制
普通用户在linux下做有限的事情。
超级用户的命令提示符是“#”普通用户的命令提示符是“$”

命令 su [用户名]
功能切换用户。
例如要从root用户切换到普通用户user则使用 su user。 要从普通用户user切换到root用户则使用 su rootroot可以省略此时系统会提示输入root用户的口令

3.Linux的文件属性

可以有的属性是 读 写 执行r w x

文件属性包括文件类型和文件权限

4.文件权限

image-20221126054144661

1.文件类型

Linux操作系统中不用文件的后缀名区分文件类型而是用文件属性中第一列的第一个字符来区分文件类型。

image-20221126060100719

2.文件名后缀

未来我们该如何看待后缀呢

a.如果你想用就用可以给人看

b.将后缀看做成文件名的一部分

gcc软件需要后缀

4.Linux用户

普通用户和root用户之间的切换su

image-20221126060641855

image-20221126061655919

5.角色划分

1.文件拥有者

2.文件所属组

3.文件的other

image-20221126062244064

image-20221126064435066

6.文件访问权限的相关设置方法

achmod

功能 设置文件的访问权限
格式 chmod [参数] 权限 文件名

常用选项

R -> 递归修改目录文件的权限
说明只有文件的拥有者和root才可以改变文件的权限

① 用户表示符+/-=权限字符

image-20221126064104058

image-20221126064936858

②三位8进制数字

image-20221126065851577

b)chown

功能修改文件的拥有者

格式chown [参数] 用户名 文件名

实例

# chown user1 f1
# chown -R user1 filegroup1

c)chgrp

功能修改文件或目录的所属组

格式chgrp [参数] 用户组名 文件名

常用选项-R 递归修改文件或目录的所属组

实例

chgrp users /abc/f2

d)umask

功能

查看或修改文件掩码

新建文件夹默认权限=0666

新建目录默认权限=0777

但实际上你所创建的文件和目录看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到

umask的影响。假设默认权限是mask则实际创建的出来的文件权限是: mask & ~umask

格式umask 权限值

说明将现有的存取权限减去权限掩码后即可产生建立文件时预设权限。超级用户默认掩码值为0022普通用

户默认为0002。

实例

# umask 755
# umask //查看
# umask 044//设置

7.目录权限

我们之前了解了文件的权限那么目录的权限又是怎么样的呢

首先我们要进入一个目录需要什么权限

答案是可执行权限如果我们没有可执行权限(X)那么我们就不能cd进入该目录。

对于目录来讲如果没有r权限我们就无法查看当前目录下的文件名+文件属性。

对于目录来讲如果没有w权限我们就无法直接在该目录下创建新文件。

想要更深入的了解目录权限就得利用文件系统的知识后面会对这里进行补充。

8.默认权限

我们创建的普通文件(不包括可执行)为什么文件权限是从664开始为什么目录的默认权限是从775开始

其实不同的操作系统可能默认权限是不一样的。

默认权限就是我们直接看到的

起始权限系统设定的普通文件的起始权限是666开始的没有x(可执行程序),目录文件的起始权限是777(rwx)

系统为了更好的控制文件的权限系统会有默认的权限掩码的概念即umask。

**对于root用户系统默认的umask值是0022**对于普通用户系统默认的umask值是0002。

然后通过和权限掩码的处理就可以得到最终权限。

权限掩码在起始权限中去掉在umask中出现的权限不能影响其他任何权限

== 最终权限=起始权限&(~umask) ==

普通文件的默认权限

在这里插入图片描述

目录的默认权限

在这里插入图片描述

四、粘滞位

我们如果创建一个共享目录让多个人可以同时共享文件就会出现一些问题就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

举例说明就是张三创建了一个文件为了不让李四操作就将自己文件other的写权限关闭李四就不可以在张三的文件中创建新的文件但是李四只要有目录的写权限他就可以直接将张三的文件直接删除掉这让张三防不胜防我们粘滞位就是为了解决这一实际问题。

但是有人又说既然李四要有目录的写权限才可以删除目录中张三的文件那么我们直接将目录的写权限直接关闭掉那么李四不就不可以删除掉张三的文件了吗可是这种方法是拆了东墙补西墙我们这个目录创建就是为了张三和李四等人能够同时在该目录下操作你去掉了该目录的写权限不仅李四不能删除张三的文件但是张三和李四都不能在该目录下创建新的文件那么我们这个目录还有什么作用呢所以这种方式并不能解决这一问题粘滞位就可以。

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm是否删除有写保护的普通空文件 "/home/abc.c"y
rm: 无法删除"/home/abc.c": 不允许的操作

我们先来看以下dir的权限

在这里插入图片描述

我们给dir目录加上粘滞位后看一下权限

在这里插入图片描述

加了粘滞位之后我们发现dir该目录的other的x权限位置变成了t这样在dir的目录中没有权限的普通用户就没有办法删除文件了。

那么问题又来了加上粘滞位后什么情况下才可以删除目录中的文件呢

答案是在这种特定的目录下创建文件和删除文件都是由该目录的w权限决定

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

五、权限的总结

1.目录的可执行权限是表示你可否在目录下执行命令。

2.如果目录没有-x权限则无法对目录执行任何命令甚至无法cd 进入目, 即使目录仍然有-r 读权限这个地方很容易犯错认为有读权限就可以进入目录读取目录下的文件

3.而如果目录具有-x权限但没有-r权限则用户可以执行命令可以cd进入目录。但由于没有目录的读

权限所以在目录下即使可以执行ls命令但仍然没有权限读出目录下的文档。
目录的w权限决定

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: shelllinux