Linux:认识Shell、Linux用户和权限

        谈起Linux,一般是在说区别于WindowsLinux操作系统,而Linux刚开始用来指Linux内核。值得一提的是,安卓底层也是Linux内核,而安卓系统又是区别于Linux的操作系统。

目录

一、Shell

为什么会有Shell

什么是Shell

Shell相关具体操作

二、Linux用户

三、Linux权限

1.用户

2.认识文件信息

3.修改权限的相关指令

4.删除&粘滞位


一、Shell

        狭义地说,操作系统仅仅是内核(kernel)的那部分,而我们平常说的操作系统,一般都是包括外壳(shell)那部分。

        如此说来,为什么会有Shell ,什么是Shell?

为什么会有Shell

        一部分原因:操作系统内核使用起来并不简单,且出于安全考虑,并不直接给用户来使用操作系统。

        主要原因:绝大数用户并不了解内核本身,为了便于用户体验操作,做成更接近于人类思维的Shell,由Shell和内核交互,才是最优解。

什么是Shell

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

Shell相关具体操作

        Shell本质是系统启动后,执行起来的一个程序,也就是进程,系统启动期间,一直存在(每一个用户分配一个进程)。

        对于用户的指令,Shell会进行识别:

        如果为错误操作,直接拦截,不反馈给内核。

        如果是不安全指令,会生成子进程,由子进程和内核交互,避免出现崩溃而终止主进程。

二、Linux用户

       Linux系统中将用户分为Root用户普通用户

  • 如果你是普通用户

1.当你要登录Root账户:需要键入Root账号密码

2.当你要登录其他普通用户:需要键入他人账号密码 

  • 如果你是Root账号:可以随意切换账号

三、Linux权限

1.用户

  • 对于用户分为:Root用户和普通用户
  • 根据用户对文件行为分为:拥有者(user,u),所属组(group,g)和Other(o)
  • 文件的权限操作有:r(读) w(写)x(执行)

  • 三位一组,从左至右,依次表示u,g,o对该文件所拥有的权限

        比如用户euto对于文件test.c目前有rw能力:

  • 可以用chmod修改u失去r权限

  • 也可以执行chmod添加回来:

  • 如果x权限,需要满足文件是可执行文件且有执行权限,两者缺一不可

        如果有x权限但不是可执行文件:

         如果没有x权限但是可执行文件:

        就算您是Root用户:

        Root用户没x权限情况下也会报Permission denied的。


2.认识文件信息

        第一列表示文件类型,虽然Linux不通过后缀来识别文件是哪种类型,但是推荐使用后缀,一是因为有些工具软件需要,二是我们需要通过后缀来便于可读。

  • d:文件夹/目录
  • -:普通文件:图片,源文件,txt,源文件等
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等连续读写)(Linux下一切皆文件)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备等随机读写)

i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有创建文件,删除移动目录内文件的权限
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限 

3.修改权限的相关指令

1.chmod

        只有文件的拥有者和root才可以改变文件的权限

2.chown

3.chgrp

4.umask:查看或修改文件掩码

        新建文件夹默认权限=0666 
        新建目录默认权限=0777 
        但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask 

        注意:将现有的存取权限去掉权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

5.file

辨识文件类型。

4.删除&粘滞位

        一个文件能否被删除,并不取决于文件本身的权限,而是取决于文件所处的目录,是否有w权限

        这样引发了一个问题:

        在“我”的目录下有root用户创建的文件。

        执行chmod来取消other的权限后,的的确确没有查看等权限了。

        但是,文件所处目录是属于“我”的,我可以把这个我没有权限的文件删除:

         这就是一个巨大的bug。于是,Linux系统就想,让每个用户互相独立,需要多用户协同的情况,就在根目录下的单独一个文件操作:/tmp。

        注意,这里other权限全部放开。

如你所见:

        这样,多用户共享一个目录。

        即使如此,other还是有权限删除你的文件的。

        于是,引入粘滞位来解决这个问题

        chmod u+t

        进一步限定权限的使用

        对于目录里的文件,只有Root文件拥有者、以及目录拥有者可以删除,这就是粘滞位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2946.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIP-VLAN-hybrid接口+DHCP实验

1.拓扑及实验需求 2.需求分析 需要用到的技术 1、虚拟局域网(VLAN) 2、动态主机配置协议(DHCP) 3、单臂路由 首先先完成交换部分,创建对应的vlan将PC1与PC3划入vlan2且接口类型为access,而以外的PC都划…

【Redis】Redis 集群中节点之间如何通信?

【Redis】Redis 集群中节点之间如何通信? 一背景概述二通信协议Gossip 协议 三通信机制Gossip 消息类型(1).Ping消息(2).Pong消息(3).Meet消息(4).Fail消息 消息传播模式(1).反熵(Anti-entropy)(2).谣言传播(Rumor mongering) 四通信过程通信端口通信频率故障检测与…

《Keras 3 在 TPU 上的肺炎分类》

Keras 3 在 TPU 上的肺炎分类 作者:Amy MiHyun Jang创建日期:2020/07/28最后修改时间:2024/02/12描述:TPU 上的医学图像分类。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 简介 设置 本教程将介…

计算机网络 (42)远程终端协议TELNET

前言 Telnet(Telecommunication Network Protocol)是一种网络协议,属于TCP/IP协议族,主要用于提供远程登录服务。 一、概述 Telnet协议是一种远程终端协议,它允许用户通过终端仿真器连接到远程主机,并在远程…

微服务拆分

微服务拆分 接下来,我们就一起将黑马商城这个单体项目拆分为微服务项目,并解决其中出现的各种问题。 熟悉黑马商城 首先,我们需要熟悉黑马商城项目的基本结构: 大家可以直接启动该项目,测试效果。不过&#xff0c…

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程》全新上线了,欢迎广大GISer朋友关注,一起探索GIS奥秘,分享GIS价值! 本专栏以实战案例的形式,深入浅出地介绍了GRASS GIS的基本使用方法,用一个个实例讲…

Lianwei 安全周报|2025.1.13

新的一周又开始了,以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 美国国土安全部发布《公共部门生成式人工智能部署手…

sparkSQL练习

1.前期准备 (1)建议先把这两篇文章都看一下吧,然后把这个项目也搞下来 (2)看看这个任务 (3)score.txt student_id,course_code,score 108,3-105,99 105,3-105,88 107,3-105,77 105,3-245,87 1…

使用docker-compose安装ELK(elasticsearch,logstash,kibana)并简单使用

首先服务器上需要安装docker已经docker-compose,如果没有,可以参考我之前写的文章进行安装。 https://blog.csdn.net/a_lllk/article/details/143382884?spm1001.2014.3001.5502 1.下载并启动elk容器 先创建一个网关,让所有的容器共用此网…

vue3+elementPlus之后台管理系统(从0到1)(day1)

vue3官方文档:https://cn.vuejs.org/guide/introduction.html 1、项目创建 确保电脑已安装node 查看命令: node -v进入项目目录,创建项目 npm init vuelatest Need to install the following packages: create-vue3.13.0 Ok to procee…

SparkSQL数据模型综合实践

文章目录 1. 实战概述2. 实战步骤2.1 创建数据集2.2 创建数据模型对象2.2.1 创建常量2.2.2 创建加载数据方法2.2.3 创建过滤年龄方法2.2.4 创建平均薪水方法2.2.5 创建主方法2.2.6 查看完整代码 2.3 运行程序,查看结果 3. 实战小结 1. 实战概述 在本次实战中&#…

软件设计大致步骤

由于近期在做软件架构设计,这里总结下大致的设计流程 软件设计流程 1 首先要先写系统架构图,将该功能在整个系统的位置以及和大致的内部模块划分 2 然后写内部的结构图,讲内部的各个子系统,模块,组件之间的关系和调用…

读取长文本,使用读取底表

文章目录 代码有原始数据内表作为主表连接STXL的示例获取物料分类获取物料分类的文本的宏读取分类 https://blog.csdn.net/DeveloperMrMeng/article/details/118354649 代码 "第三种:读取底表获取文本 DATA: LT_TLINE TYPE STANDARD TABLE OF TLINE. DATA: LS…

阀井可燃气体监测仪,开启地下管网安全新篇章-旭华智能

在城市的脉络中,地下管网犹如隐秘的动脉,支撑着现代生活的运转。而在这庞大网络的关键节点上,阀井扮演着不可或缺的角色。然而,由于其密闭性和复杂性,阀井内部一旦发生可燃气体泄漏,将对公共安全构成严重威…

Golang结合MySQL和DuckDB提高查询性能

要在Golang中组合MySQL和DuckDB以提高查询性能,请考虑使用混合查询执行方法。这种方法利用了MySQL强大的事务管理和DuckDB闪电般的分析处理能力。本文介绍如何充分利用两者的方法。 各取所长 用MySQL处理事务,用DuckDB处理分析 MySQL应该处理常规的INS…

Docker PG流复制搭建实操

目录标题 制作镜像1. 删除旧的容器2. 创建并配置容器3. 初始化数据库并启动 主库配置参数4. 配置主库5. 修改 postgresql.conf 配置 备库配置参数6. 创建并配置备库容器7. 初始化备库 流复制8. 配置&检查主库复制状态9. 检查备库配置 优化建议问题1:FATAL: usin…

增广卡尔曼滤波AKF的要点分析

增广卡尔曼滤波(Augmented Kalman Filter, AKF)是相对特定的卡尔曼滤波模型来说的,在状态量和/或观测量上进行增广,以满足特定的要求。 通常用于:专门用于处理具有状态噪声和观测噪声的不确定性,尤其是在需要同时估计系统状态和额外参数时。它通过将额外的参数或状态变量…

三只松鼠携手爱零食,社区零售新高峰拔地而起

合纵连横,这是当前零售行业发展的一个主旋律。从商超之王胖东来的全国调改,到社区零售正在进行的渠道变革,竞争的激烈和商业模式的升级令人目不暇接。 量贩零食赛道在过去一年就是如此,有杀伐,有并购,刀光…

Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)

我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研) 记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结网上借鉴&#xff0…

Linux第二课:LinuxC高级 学习记录day04

6、shell中的语句 6.3、结构性语句 6.3.1、if if…then…fi 1、结构 1)基本结构 if 表达式 then 命令表 fi if [ 表达式 ] // 【】两侧有空格 then 命令表 fi 2)分层结构 if 表达式 then 命令表1 else 命令表2 fi 3)嵌套结构 if …