当前位置: 首页 > news >正文

linux中的权限

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文件]

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 之后输入历史命令中的关键字就会自动跳出历史命令


文件的权限属性:

一个文件可以拥有三个权限:

  1. 是否具有可以读的权限
  2. 是否具有可以写的权限
  3. 是否具有可以执行的权限

这三种权限分别对应字符 r 、w、x  ,当具有可读权限的时候会显示字符r,当具有可写权限时会显示字符w,当具有可执行权限时会显示x。

这些权限可以认定为 文件对不同的用户 而开放的不同权限。 

当然这些权限是可以修改的,使用chmod进行对应角色的权限修改: 

删去 拥有者 的 可读权限 

删去 所属组 的 可写权限 删去 other 的 可读权限 修改 多个 用户的权限 同时添加 拥有者 所属组 other 的可读权限 

对于普通用户:没有 r 权限 就不能查看文件的内容,没有w权限就不能再文件中写入内容。 这是普通文件给予自己的一种束缚,即便文件的创始者是自己,但是对于超级用户root而言可以无视这些束缚。  

身份匹配: 

当文件的拥有者和所属组是同一个时,这就会产生一共疑问,我是拥有者,但拥有者没有这些权限,但我也是所属组,所属组有这些权限,但为什么还是不能使用这些权限呢? 

答:

  1. 这涉及到linux的身份识别问题,linux对用户的身份识别只识别一次, 也就说第一个身份识别失败后会开始识别第二次,当识别成功后就不会往后继续识别身份。
  2. 例如匹配完拥有者成功后,就不继续匹配是否是所属组了,当识别不是拥有者不是所属组之后就认定为other  

拥有者、所属组的修改: 

  1. chown 用户名 文件   修改文件的拥有者
  2.  chgrp 用户名 文件    修改文件的所属组
  3. chown 用户名1:用户名2 文件   修改文件的拥有者和所属组

修改拥有者   同时修改拥有者和所属组 

 


粘滞位

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

  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除

 使用chmod +t 目录名  的操作,将目录下的文件进行操作,使得目录中的文件不得被删除。

相关文章:

  • 如何使用Douglas-042为威胁搜索和事件应急响应提速
  • 【Linux从青铜到王者】 基础IO
  • 绕过5秒盾Cloudflare和DDoS-GUARD
  • vue3组件间的通信,通过props,emit,provide和inject把数据传递N个层级,expose和ref实现父组件调用子组件方法
  • 【Elasticsearch专栏 01】深入探索:Elasticsearch的正向索引和倒排索引是什么
  • 一种新型的AlGaN/GaN HEMTs小信号建模与参数提取方法
  • 谷歌连发 Gemini1.5、Gemma两种大模型,Groq让模型输出速度快18倍
  • 8-pytorch-损失函数与反向传播
  • Qt读写局域网共享文件夹
  • nodejs:nvm(nodejs版本管理切换工具)
  • [SpringDataMongodb开发游戏服务器实战]
  • Camunda7.18流程引擎启动出现Table ‘camunda_platform_docker.ACT_GE_PROPERTY‘的解决方案
  • week04day02(爬虫02)
  • OSCP靶场--Slort
  • 【python基础学习2】python里和可迭代对象iterator相关的函数:zip(), map(), join() 函数和strip()方法等
  • css布局,左右固定中间自适应实现
  • Git的一些常用操作
  • golang 发送GET和POST示例
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • java正则表式的使用
  • MySQL QA
  • Mysql5.6主从复制
  • nodejs:开发并发布一个nodejs包
  • php中curl和soap方式请求服务超时问题
  • Python进阶细节
  • session共享问题解决方案
  • SpringCloud集成分布式事务LCN (一)
  • 阿里云Kubernetes容器服务上体验Knative
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 关于for循环的简单归纳
  • 技术胖1-4季视频复习— (看视频笔记)
  • 简单实现一个textarea自适应高度
  • 前端面试之CSS3新特性
  • 实习面试笔记
  • 我这样减少了26.5M Java内存!
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • ​虚拟化系列介绍(十)
  • # C++之functional库用法整理
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (六)c52学习之旅-独立按键
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .NET 事件模型教程(二)
  • .NET6 命令行启动及发布单个Exe文件
  • .net知识和学习方法系列(二十一)CLR-枚举
  • @GetMapping和@RequestMapping的区别
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术