【Linux第二课-权限】操作系统、Linux用户、Linux权限、Linux文件类型、粘滞位

目录

  • 操作系统
    • shell外壳
      • 为什么有shell外壳
      • shell外壳是什么
      • shell外壳工作原理
  • Linux用户
    • root用户与非root用户
    • root用户与普通用户的切换
      • 普通用户 --> root用户
      • root用户 --> 普通用户
      • 普通用户 --> 普通用户
      • 对一条指令提升为root权限进行执行
  • Linux权限
    • Linux中的权限角色
    • Linux中的权限文件属性
    • 修改权限
      • ugr、rwx权限修改
      • 八进制权限修改
    • 有 没有 权限的对比表现
    • 更改文件拥有者、所属组
  • Linux文件类型
    • b块设备文件
    • c字符设备文件
    • l链接文件
    • p管道文件
    • file指令
  • 常见的权限三个问题
    • 1、对一个目录而言,进入一个目录需要什么权限
    • 2、为什么创建的普通文件权限不是777,而默认是664;为什么创建的普通文件权限不是777,而默认是775
    • 3、一个文件能否被删除并不取决于文件本身,而取决于文件所处的目录的拥有者是否有写权限
      • 粘滞位

操作系统

在这里插入图片描述
操作系统概念
广义:内核+外壳(linux的外壳-命令行;Windows的外壳-图形化界面)
侠义:内核

shell外壳

为什么有shell外壳

用户不善于直接使用操作系统

shell外壳是什么

核心工作:用户与内核之间,需求指令<-shell->执行结果
在这里插入图片描述

shell外壳工作原理

shell – 本质是一个执行起来的程序(进程),系统启动期间,一直存在

有风险、用户自定义的指令 — shell都是通过创建子进程的方式去执行有风险的程序
无风险的指令 — shell自己执行

Linux用户

root用户与非root用户

root用户:只有一个
非root用户:即普通用户,可以有多个

root用户与普通用户的切换

只有一个

普通用户 --> root用户

//以root身份重新登录一次
su -
//用户身份提升为root
su

在这里插入图片描述
在这里插入图片描述

su - 切换用户之后还会显示一大段的用户登录信息
su 切换用户之后不会显示

输入下列指令就又会退出来了

logout

在这里插入图片描述

root用户 --> 普通用户

su 普通用户名

在这里插入图片描述

普通用户 --> 普通用户

su 普通用户名

普通用户切换成root用户,需要输入root用户的密码
root用户切换成普通用户,不需要输入普通用户的密码
普通用户切换成另一个普通用户,需要输入另一个普通用户的密码

对一条指令提升为root权限进行执行

sudo 要执行的指令

问题1:
在这里插入图片描述
系统中有一个用户信息配置文件,sudoers有点像linux里面的一张名单,如果一个普通用户在这个配置文件名单里面,就允许该用户进行sudo。
这个文件只能root用户进行添加,因此能进行sudo的用户必须是经过root用户允许的
在这里插入图片描述

sudoers相当于Linux里面的白名单,还有一个黑名单。白名单:做什么都运行,黑名单:做什么都不允许

将用户添加到sudoers
使用文本编辑器进行添加,vim之后再讲

如果我们输入sudo就可以以root的身份执行指定的命令,root的密码毫无意义??
上面就是原因
下面的命令跑不起来

sudo ll

Linux权限

权限是限制人的,能还是不能的问题
对应的操作对象,一定要有对应的满足人的需求的属性

主要用于文件权限上
Linux群体(人)---- 更多的是角色(身份)!— 拥有者 所属组 other vs (root/hui/xxx普通用户)
角色是需要人去承担的,因此对于root/hui/xxx在不同的文里面会承担不同的角色(拥有者、所属组、other)
Linux操作对象的属性 ---- 文件权限属性上 ---- r w x(读、写、执行)

Linux中的权限角色

所属组:linux里面可以建立一些组,组名可以以其中一个用户的名称命名
在这里插入图片描述

Linux中的权限文件属性

在这里插入图片描述
rwx — 111 — 7
rw- — 110 — 6

修改权限

ugr、rwx权限修改

user -> u, group -> g, other -> o
更改权限命令:chmod u/g/o-权限,u/g/o-权限,u/g/o-权限文件名、chmod u/g/o+权限 文件名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

chmod u-r,g-r,o-r file.txt

在这里插入图片描述
给所有人加上r权限

chmod a+r file.txt  //a--all,所有人

在这里插入图片描述

八进制权限修改

chmod 777 file.txt

在这里插入图片描述

有 没有 权限的对比表现

拥有者没有读权限
在这里插入图片描述
拥有者没有写权限
在这里插入图片描述
对于执行,需要满足下列两个要求:
1、你有执行权限
2、这是一个可执行文件
权限x的意思是,你要执行的时候我不拦着你,但前提你得是个可执行文件
linux中权限角色判断,从拥有者、所属组、other依次开始判断,如果是拥有者就不会继续往后判断,就只看拥有者的权限
root账号之下,不受权限约束

更改文件拥有者、所属组

修改拥有者

chown 要更改的用户名 文件名

在这里插入图片描述
但这个是不允许的,给别人文件是需要征得别人允许。但在Linux里面是得不到允许的,只能来硬的,sudo进行指令提权
修改所属组

chgrp 要更改的用户名 文件名

没有更改other的指令
因为在修改拥有者、所属组时,other也在相应的改变
同时更改拥有者、所属组

chown 拥有者更改名:所属组更改名 文件名

Linux文件类型

Linux不通过后缀区分(不代表Linux不用后缀)
-:普通文件,文本、源代码、图片、视频、库、可执行等
d:目录文件
b:(block)块设备文件,磁盘,支持随机访问都是块设备
c:(char)字符设备文件,键盘,显示器,不支持随机访问
l :链接文件
p:管道文件
s:socket文件

linux下一切皆文件,硬件设备也会被当文件

在这里插入图片描述

b块设备文件

在这里插入图片描述

c字符设备文件

在这里插入图片描述
在这里插入图片描述

在系统中,每一次打开一个终端文件,这个终端文件也是一个

l链接文件

具有指向性(类似快捷方式),lib64是系统中默认安装的很多库文件
在这里插入图片描述

p管道文件

mkfifo 管道名

在这里插入图片描述

这种管道文件和之间学命令行的|有很大关系,但不一样,他们是兄弟关系,后面学
管道文件:传递信息

file指令

更加详细的显示是什么文件

file 文件名

在这里插入图片描述

常见的权限三个问题

1、对一个目录而言,进入一个目录需要什么权限

不是写权限
在这里插入图片描述
不是读权限

chmod u-r,u+w dir

在这里插入图片描述
是x权限,进入一个目录收执行权限的影响
在这里插入图片描述

目录没有r权限,看不见目录里面文件对应的属性信息
目录没有w权限,无法在目录里面创建文件、删除文件、修改文件等,但文件属性可以改、文件名不能改
目录没有x权限,无法打开目录

在这里插入图片描述

2、为什么创建的普通文件权限不是777,而默认是664;为什么创建的普通文件权限不是777,而默认是775

drwxrwxr-x 2 hui hui 4096 Jan 19 12:34 new_dir
-rw-rw-r-- 1 hui hui 0 Jan 19 12:34 new.txt
对于x权限,只有需要的文件才加上,如目录、可执行文件。对于不需要的普通文件默认不加,如果用户需要再自己加
目录起始权限:777
普通文件起始权限:666
系统中不只有起始权限,还有权限掩码umask:定制一个文件被创建时的默认权限

查看系统默认的权限掩码
umask
在这里插入图片描述
0002 -> 002 -> 000 000 010(第一个0代表八进制)

在这里插入图片描述
起始权限&(-umask) = 最终权限(默认)
在这里插入图片描述

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

如果我们之间需要文件共享呢?
Linux里的根目录下的tmp目录就是,/tmp,被所以用户共享。但tmp里面有一个问题:你即使不让普通用户读写等,但它能删除(因为tmp的other权限有w)

drwxrwxrwx.  8 root root  4096 Jan 19 03:21 tmp

为了解决上述问题,Linux新增了一个权限,t — 粘滞位

drwxrwxrwt.  8 root root  4096 Jan 19 03:21 tmp

粘滞位

在共享目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行了特定的限制
该目录里的文件,只有root文件的拥有者该目录的所有者有权利进行删除!!其他人一概不允许!

【Linux第一课-Xshell常用命令大全】Linux安装、xshell的安装与登录、os概念、xshell基本指令

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

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

相关文章

解决国内Linux服务器无法使用Github的方法

解决思路&#xff1a;修改Host https://www.ipaddress.com/ 利用上面的网站查询github.com和raw.githubusercontent.com的DNS解析的IP地址 最后&#xff0c;修改服务器的/etc/hosts 添加如下两行&#xff1a; 140.82.112.3 github.com 185.199.108.133 raw.githubuserconte…

树形结构下拉框组件vue-treeselect的使用(安装、模糊匹配、单选、多选、延迟加载、异步搜索等)

一、基本使用流程 首先npm安装依赖 npm install riophae/vue-treeselect --save然后在需要使用的组件中引入 import Treeselect from riophae/vue-treeselect import riophae/vue-treeselect/dist/vue-treeselect.css声明组件 components: { Treeselect }使用 <treesele…

安装布隆过滤器

上传并解压文件解压文件 tar -zxvf RedisBloom-2.2.4.tar.gz 进入解压好的文件 make一下 返回进入conf 配置文件 loadmodule /usr/local/etc/redis/redisbloom.so 粘入 拷贝redisbloom.so到容器 : docker cp redisbloom.so redis:/usr/local/etc/redis 重启redis : docker …

NX二次开发获取圆弧的四个象限点

我是用来用来画水路线框的UF_MODL_ask_curve_points&#xff08;&#xff09;可以按弧长或者弧度获取曲线的等分点&#xff0c;取PI/2的圆弧&#xff0c;即将圆弧四等分&#xff0c;你也可以取任意等分点。 int GetArcPoint(tag_t arc_tag,double point[4][3]) {if(arc_tag0)r…

Ubuntu 20.04安装yum报错:E: Unable to locate package yum

直接上解决方案&#xff01; 1、选择自己对应的版本的源地址 注意需要选择跟系统版本一致的&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 找到Ubuntu点击小问号&#xff0c;进去选择对应的版本&#xff0c;将下面的镜像复制到Linux系统的 /etc/apt/sourc…

vue2 使用pdf.js 实现pdf预览,并可复制文本

需求&#xff1a;pdf预览&#xff0c;并且可以选中pdf的内容进行复制。 在ruoyi的vue前端项目中用到&#xff0c;参考了网上不少文章&#xff0c;因为大部分没给具体的pdf.js版本&#xff0c;导致运行过程中报各种api 错误&#xff0c;经过尝试以下版本可用&#xff0c…

ARM多核调度器DSU

1. 背景 从A75开始&#xff0c;ARM提出了一个新的多核心管理系统单元&#xff0c;叫做DSU(DynamIQ Shared Unit)。DSU的核心功能是控制CPU内核&#xff0c;使其成簇Cluster使用&#xff0c;簇内每一个核心可以单独开关、调整频率/电压&#xff0c;能效表现更佳&#xff0c;甚至…

Docker-Confluence部署记录

启动 docker container run -v $(pwd):/var/atlassian/application-data/confluence/ --nethost -d --nameconfluence_720_20240120 confluence/confluence:7.2.0新建mysql数据库 导入破解包 atlassian-agent 参考-Confluence 破解方式&#xff08;Linux&#xff09; 按流程破…

springcloud OpenFeign服务接口调用

文章目录 代码下载地址OpenFeign简介OpenFeign使用步骤测试 OpenFeign超时控制超时设置&#xff0c;故意设置超时演示出错情况服务提供方8001故意写暂停程序服务消费方80添加超时方法PaymentFeignService服务消费方80添加超时方法OrderFeignController测试YML文件里需要开启Ope…

区间问题笔记

1、k倍区间 #include <iostream> #include<cmath> #include<vector> #include<algorithm> #include<stack> using namespace std;long long sum[100005]; // 前缀和数组 int cnt[100005]; // 记录sum[i]除k得到的余数的个数 int ans;int…

操作系统实验报告

目录 目录 实验一 一、实验结果 实验二 使用信号量实现进程互斥与同步 一、实验结果 1. 使用信号量实现有限缓冲区的生产者和消费者问题 2. 使用信号量实现读进程具有优先权的读者和写者问题 实验三 死锁和预防 一、实验要求 二、实验内容 三、实验结果 实验四 内…

js中高德地图如何自身所在城市

直接上代码 <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"initial-scale1.0, user-scalableno, wi…

Linux中的新建用户、切换用户

目录 一、Linux系统中有哪些用户 二、新建普通用户 三、root账号与普通账号的切换 一、Linux系统中有哪些用户 1.root 超级管理员&#xff08;不受权限约束&#xff09; 2.其他用户 普通用户&#xff08;受到权限约束&#xff09; 二、新建普通用户 创建新用户 sudo user…

如何删除Windows密码,看这篇文章就够了

删除Windows帐户的密码一点也不困难。删除密码后,当计算机启动时,你就不再需要登录到Windows。 在你删除密码后,家里或办公室里的任何人都可以完全访问你电脑上的所有内容,所以这样做并不是一件非常注重安全的事情。 ​注意:如果你忘记了密码,那么你将无法使用下面的方…

Oracle 12CR2 RAC部署翻车,bug避坑经历

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

【AI】ChatGPT和文心一言那个更好用

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读文章&#xff01; 此篇是【话题达人】序列文章&#xff0c;这一次的话题是《自然语言处理的发展》 文章将以博主的角度进行讲述&#xff0c;理解和水平有限&#xff0c;不足之处&#xff0c;望指正。 目录 背景自我介绍面试题…

git本地分支的合并

目录 第一章、本地分支的切换测试1.1&#xff09;切换之前的master分支下文件内容1.2&#xff09;切换到develop分支后修改文件1.3&#xff09;切回master分支出现报错&#xff1a;1.4&#xff09;报错分析 第二章、解决方式2.1&#xff09;方式1&#xff1a;commit2.2&#xf…

Spring Security的使用条件

Spring Security要求使用Java 8或更高版本的运行时环境。 由于Spring Security旨在以自包含的方式运行&#xff0c;因此您无需在Java运行时环境中放置任何特殊的配置文件。特别是&#xff0c;您无需配置特殊的Java认证和授权服务&#xff08;JAAS&#xff09;策略文件&#xf…

“盲盒+互联网”模式下的盲盒小程序带来了哪些机遇?

近几年&#xff0c;盲盒逐渐兴起&#xff0c;深受大众的喜爱。盲盒中拥有各类随机商品&#xff0c;包括玩偶手办等&#xff0c;让消费者无法自拨。盲盒拥有神秘感和不确定性&#xff0c;消费者在购买前并不知道盲盒中是什么商品&#xff0c;因此具有较大的惊喜感&#xff0c;能…

绑定class,条件渲染,列表过滤,列表排序

目录​​​​​​​ 绑定class 条件渲染 列表过滤 列表排序 绑定class <div class"normal" :class"mood" click"changename">111{{name}}</div><div class"normal" :class"arr">111{{name}}</div…