Linux 的权限
在了解Linux的权限之前,我们需要知道Linux的构成,Linux分为三个部分,内核、外部程序、以及用户。
内核:
- 内核一般是指Linux的操作系统,用来执行用户发送的指令 或者 拒绝执行用户发布指令时而发出的报错行为,简单来说就是执行指令和发出报错。
在云服务器中,可以使用uname -r 指令进行查询当前的操作系统信息,其中包括cpu以及操作系统的版本。查看操作系统版本
查看cpu信息
查看内存信息
外部程序:
- 常见的外部程序是命令行代码或者图形界面,在Linux中,用户是不能直接对内核发布指令,需要先对外部程序发布指令,再由外部程序将指令传达到操作系统中。
在外部程序中,外部程序通常是使用一种子进程来进行传达用户输入的指令的,这是外部程序的一种保护自我的机制,若子进程挂了,外部程序无事发生,若外部程序挂了,那么整个用户和内核之间的联系便断了。
- 其次外部程序其实是一种对内核操作系统的一种保护,回对用户输入的命令进行审查,若指令出错并不会传达到内核中,而上接着内核的名义进行阻断和报错。
用户:
权限 = 角色 + 事物的属性,而角色则是使用操作系统的用户,而事物的属性则是文件的权限和功能。
对于用户来说,本质上分为两类,第一类是超级管理员 root 而另一类则是普通用户。
超级管理员root有着无视规则的权限,一般在Linux的命令框后使用的是#,而普通用户则使用的是$
普通用户变为超级用户:
- 直接使用指令su
- 取消转变直接ctrl +d 或则exit
root用户变成普通用户:
直接 su 普通用户用户名,变成普通用户不需要输入密码。
以root的身份执行命令:
让普通用户以root的身份执行一个工作,需要使用 sudo 命令 ,如下所示:使用sudo命令借助着root的权限建立了一个文件。
当然,由于文件是以root权限和身份建立的,所以这个文件的所属组和拥有者是root用户。
一、压缩&解压
zip
zip 名字.zip [需要打包的文件]
zip -r 名字.zip [需要打包的目录]:如下图所示,将目录111下的文件压缩到111.zip中 ,-r其实也是一种递归处理。
zip -r test.zip * 打包多个文件或者打包多个目录 zip 名字 .zip [文件] [目录] [文件] 同时将这些文件或者目录打包到一起
unzip
unzip [zip文件] -d [路径]::将zip文件解压到指定的目录下。
tar
tar指令同时拥有压缩和打包的功能
【常用打包命令】
tar -cvf 打包文件名(xx.tar) 打包文件(*.txt)
【常用拆包命令】
tar -xvf 打包文件名(xx.tar)
【常用打包压缩命令】
tar -zcvf test.tar.gz *.txt (使用gzip进行压缩)
tar -jcvf test.tar.bz2 *.txt (使用bzip2进行压缩)
【常用拆包解压缩命令】
tar -zxvf test.tar.gz (使用gzip进行解压缩)
tar -jxvf test.tar.bz2 (使用bzip2进行解压缩)
一、常用参数说明(主参数)
必要参数,下面参数是tar运行时必须要有的,有且仅有一个。(具体的动作命令,互斥存在,不能即想压缩,又想解压缩。)
二、其他参数说明(辅助参数)
二、文件的传送
sz 压缩文件.tgz
将压缩文件 传送的电脑主机上。
scp
scp XXX.tgz 用户名@另一台linux机器的ip:你要拷贝到的路径
rz
将电脑主机的文件传送到虚拟机服务器中
三、 计算指令 bc
bc 的使用,退出使用quit进行退出
热键:
- ctrl + c终止命令
- table 快速补齐,给个关键字 摁下table 就回出现带有关键字的命令,关键字越多,table越准确
- ctrl + d 关机xshell
ctrl +r 搜索历史命令,ctrl + r 之后输入历史命令中的关键字就会自动跳出历史命令
文件的权限属性:
一个文件可以拥有三个权限:
- 是否具有可以读的权限
- 是否具有可以写的权限
- 是否具有可以执行的权限
这三种权限分别对应字符 r 、w、x ,当具有可读权限的时候会显示字符r,当具有可写权限时会显示字符w,当具有可执行权限时会显示x。
这些权限可以认定为 文件对不同的用户 而开放的不同权限。
当然这些权限是可以修改的,使用chmod进行对应角色的权限修改:
删去 拥有者 的 可读权限
删去 所属组 的 可写权限 删去 other 的 可读权限 修改 多个 用户的权限 同时添加 拥有者 所属组 other 的可读权限
对于普通用户:没有 r 权限 就不能查看文件的内容,没有w权限就不能再文件中写入内容。 这是普通文件给予自己的一种束缚,即便文件的创始者是自己,但是对于超级用户root而言可以无视这些束缚。
身份匹配:
当文件的拥有者和所属组是同一个时,这就会产生一共疑问,我是拥有者,但拥有者没有这些权限,但我也是所属组,所属组有这些权限,但为什么还是不能使用这些权限呢?
答:
- 这涉及到linux的身份识别问题,linux对用户的身份识别只识别一次, 也就说第一个身份识别失败后会开始识别第二次,当识别成功后就不会往后继续识别身份。
- 例如匹配完拥有者成功后,就不继续匹配是否是所属组了,当识别不是拥有者不是所属组之后就认定为other
拥有者、所属组的修改:
- chown 用户名 文件 修改文件的拥有者
- chgrp 用户名 文件 修改文件的所属组
- chown 用户名1:用户名2 文件 修改文件的拥有者和所属组
修改拥有者 同时修改拥有者和所属组
粘滞位
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
使用chmod +t 目录名 的操作,将目录下的文件进行操作,使得目录中的文件不得被删除。