Linux权限shell命令以及运行原理

news/2024/11/23 2:01:55/

文章目录

  • 一、Linux权限的概念
  • 二、Linux权限管理
    • 2.1.文件访问者的分类(角色)
    • 2.2文件属性
    • 2.3文件访问权限的相关设置方法
    • 2.4访问者角色的修改
    • 2.5目录权限含义
    • 2.6默认权限
  • 三、粘滞位
  • 四、 shell命令以及运行原理

一、Linux权限的概念

权限的概念通常是指行事权利的界限和范围。在linux中权限是指什么样的人可以做什么样的事或者拥有什么样的权利。
那么这里的什么样的人在linux中可以分为两类:

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

如何进行超级用户和普通用户之间的切换:
从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。
这里拥有什么样的的权利指:
拥有对某种文件的读,写,执行三种属性的权利,下面会细讲。

对单条指令进行提权:
因为创建的的普通用户是不能直接sudo操作的需要以下几步:
1、切换root用户,并切换到etc文件下。
2、找到sudoers,因为/etc/sudoers文件默认是只读的,要添加写权限 chmod u+w sudoers。
3、进入到sudoers,编辑文件,找到 root(ALL)=(ALL) ALL
在它下面添加创建的普通用户 xxx (ALL)=(ALL) ALL 如果在执行sudo命令的时候不想输入密码可 在第二个(ALL)后面加上NOPASSWD: 如图:
在这里插入图片描述
4、撤销sudoers文件写权限命令
chmod u-w sudoers

二、Linux权限管理

2.1.文件访问者的分类(角色)

文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其它用户:o—Others
如下图:
在这里插入图片描述
第一个nza是指文件的拥有者。
第二个nza是指文件所属组。
root&&user与他们的关系是什么样的人扮演什么样的角色。

2.2文件属性

文件属性是由文件类型和文件权限组成。
文件类型指下图的第一位,-表示普通文件类型:在这里插入图片描述

-:普通文件
d:文件夹
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

文件权限:
如下图后九位:
在这里插入图片描述

r:Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w:Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
x:execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 。
—:表示不具有该项权限 。
每三个一组属于一个角色拥有的权限,第一组是文件拥有者的权限,第二组是文件所属组的权限,第三组是指其它用户的权限。
比如第一行 rw-表示文件拥有者有读写没有执行的权限,w-表示文件所属组有读写没有执行的权限,r–表示其它用户有读没有写没有执行的权限。

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

(1)chmod
它可以设置文件的访问权限 采用chmod 用户表示符+/-=权限字符+ 文件名 格式。

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:文件拥有者
g:文件所属组
o:其它用户
a:所有用户

还有第二种方法八进制数设置权限:
可以把是否有权限用1或0表示,把每三个二进制数转换成八进制数表示一个权限,例如

rwx是 111八进制数是7
rx是101八进制数是5
rw是110八进制数是6
wx是011八进制数是3
r是100八进制数是4
w是010八进制数是2
x是001八进制数是1
—是000八进制数是0

格式还是chmod 八进制数 文件名。

2.4访问者角色的修改

前面讲的是如何修改访问者角色对应的3个个权限,这里讲如何修改访问者角色。但以下修改时如果是普通用户不能修改,需要sudo一下或者切换root用户。
(1)修改文件拥有者
指令是chown,格式是 chown 修改后的拥有者名字 文件名。如下图所示:
在这里插入图片描述

(2)修改文件所属组
指令是 chgrp ,格式是 chgrp 修改后的所属组名字 文件名。如下图所示:
在这里插入图片描述

2.5目录权限含义

目录中字母代表的权限含义:
r:显示目录下的内容
w:在目录下创建对应的文件
x:进入目录
x是最基本的权限,如果要读或者修改目录的前提得能进入到目录中,没有x,执行r或w权限会被拒绝。

2.6默认权限

默认权限是我们创建完目录或文件所看到的最终权限 如下图:
在这里插入图片描述
上图目录的最终权限用八进制表示是775
文件的最终权限用八进制表示是664
那这个默认权限是如何得出的,需要引入一个新指令 umsak。
系统为了更好的控制文件权限有默认 权限掩码的概念,umask是权限掩码的意思,是一个4位数字,影响用户创建的文件或目录的默认权限。如下图本系统的默认权限掩码是0002,只关注后三位,把它看成八进制数,转换为二进制数是00000010。
还要引入一个概念起始权限:它是系统设定的,规定文件的起始权限是666(二进制是110 110 110),目录的起始权限是777(二进制是111 111 111)。
那么默认权限也即是最终权限=起始权限&(~umask)。
例如:文件起始权限是110 110 110,对umask按位取反得出111111101,最后与得出110 110 100 转换为八进制数是664。
目录起始权限是 111 111 111,对umask按位取反得111111101,最后与得出 111 111 101 转换为八进制数是775。

在这里插入图片描述
权限掩码也可以更改 直接umask 更改之后的权限掩码四位数即可。

三、粘滞位

在使用linux的时,未来可能会有一些共享目录,被所有的普通用户共享,来保存用户产生的数据,共享目录都是有root提供的,但是文件被所有人共享的时候,受权限约束,拦不住别人删除自己的文件。也就是规定拥有目录的写权限,就可以删除目录的任何文件,即便自己是其他用户,没有该文件的任何权限,依然可以删除该文件。
如下图:
在这里插入图片描述
此时,为了让大家共享文件,且不让他人随便删除自己的文件,就要给该共享目录添加粘滞位,起到保护作用。
指令格式: chmod +t 文件名字(如果是普通用户前面加sudo)
在这里插入图片描述
拦不住别人删除自己的文件和只能给目录添加粘滞位的原因:
能否删除别人的文件并不是由文件本身决定的,由所处的目录的w权限决定的,有w就能删除和创建别人的文件,但是又不能去掉w,因为这是一个共享目录,要被大家所正常使用,所以要添加粘滞位。这个被删除的问题是由目录写导致的,所以之只能给目录添加粘滞位。
谁可以删除:
1、root用户
2、文件拥有者

四、 shell命令以及运行原理

shell是什么:
Linux严格意义上说的是一个操作系统,我们称之为“核心” ,kernel,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序shell与它进行沟通。
Shell的最简单定义:命令行解释器,主要包含一下两点:

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

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

1、帮忙进行命令传递和返回结果
2、保护操作系统
3、创建子进程,让子进程进行命令行解释,这样子进程有问题不会影响到父进程shell。

为什么借助shell和kernel交互:
直接和操作系统交互是难度很大的事,大多数人并不擅长。需要找一个中间人帮助我们。


http://www.ppmy.cn/news/9956.html

相关文章

Linux c编程之输入输出及IO操作

一、说明 输入输出及IO函数是编程入门的基础,也是软件程序中是最常用的函数。熟练掌握相关函数是提高编程能力的前提。 二、标准库IO函数 2.1 API说明 2.1.1 fopen() #include <stdio.h> FILE *fopen(const char *path, const char *mode);作用:打开(文件)流 参数…

Individual Tree Segmentation Method Based on Mobile Backpack LiDAR Point Clouds

Abstract 单棵树 (IT) 分割对于森林管理、支持森林清查、生物量监测或树木竞争分析至关重要。光探测和测距 (LiDAR) 是这方面的一项突出技术&#xff0c;优于竞争技术。航空激光扫描 (ALS) 经常用于森林记录&#xff0c;在树顶表面显示良好的点密度。尽管使用多回波 ALS 可以收…

vue+element对接第三方接口实现校园发帖网站“淘柳职”

一.前言 当前项目访问地址&#xff1a;点击查看效果 接上一篇博客《vueelementuijava 前后端分离实现学校帖子网站&#xff0c;仿照“淘柳职”学校大作业》 上一篇博客介绍的项目完全自带前、后端实现的&#xff0c;是一个完整的项目&#xff0c;现在作者在此基础上&#xff…

【产品设计】原型设计

一、什么是原型图&#xff1f;“原型”的最基本定义是“最终产品的仿真或样本版本&#xff0c;用于发布之前方便测试。” 原型的目标是在花费大量时间和金钱进入开发产品前&#xff0c;让开发者以及对应的需求方能够快速的了解产品创意以及产品的样式布局。原型是一种让用户提前…

AI机器学习时序序列特征提取实现分类预测实战

最近有位做医疗项目的同学咨询有一批人员的身高、体重、性别、年龄、心电图、是否有心脏病等数据是否可以根据这些数据预测某个人是否有心脏病的迹象。这当然是可以的&#xff0c;AI机器学习不就是干这事的吗&#xff1f;这是一个典型的分类算法。根据这些人体特征来判断是否存…

Git的标签:tag

目录 1. 查看标签 1.1 简单查看 1.2 匹配筛选标签 2. 创建标签 2.1 附注标签 2.2 轻量标签 2.3 代码提交之后打标签 2.4 提交标签 3. 删除标签 4. 检出标签 Git 可以给仓库历史中的某一个提交打上标签&#xff0c;以示重要。 比较有代表性的是人们会使用这个功能来标记…

【Java语法】之String类练习2

目录 1.转换成小写字母 2.字符串中的单词数 3.交替合并字符串 转为数组 转为StringBuilder 4.字符串压缩 5.关于同构 有效的字母异位词 字符串的排列 6.长度最小的子数组 7.小结 1.转换成小写字母 709. 转换成小写字母 难度简单220 给你一个字符串 s &#xff0c;将该字符串中…

基础算法[四]之图的那些事儿

文章目录前言图的表示邻接矩阵邻接表结构存储遍历路径搜索多源最短路问题问题描述Floyd实现模板单源最短路径问题Dijkstra算法朴素版本堆优化邻接表python实现Bellman-Ford 算法实现SPFA 算法实现python 版本判断负环小结最小生成树Prim算法Kruskra算法实现python版本二分图二分…