Linux 权限

目录

一、 从问题开始

问题一: 什么叫shell?

问题二: 为什么不能直接使用kernel呢?

问题三: shell 与bash 有什么不同吗? 

 二、 Linux权限

0x01 Linux用户

0x02 切换用户命令  

0x03 sudo命令

0x04 权限的相关概念

0x05 chmod

0x06 chown

0x07 chgrp

0x08 文件权限值的8进制数值表示方法  

0x09 对于目录的读写执行权限  

0x10 other删除文件是否因为写权限

0x11 权限掩码  


一、 从问题开始

问题一: 什么叫shell?

Linux严格意义上来说是一个操作系统,可以称之为"核心(kernel)",而我们一般的用户,不能直接使用这个核心,此时shell就充当一个外壳程序来与这个核心进行沟通。

 从广义上来说: Linux发行版 = Linux内核 + 外壳程序
 从狭义上来说: Linux = Linux 内核
 而我们更多的是从广义上来说

问题二: 为什么不能直接使用kernel呢?

①用户直接使用kernel的成本很高,如果某个命令执行错误,代价还是挺大的
②其次shell也可以用来对操作系统的保护,让内核不会暴露给用户,以免造成不合理的操作所以从技术角度,我们也可以把shell定义为命令行解释器,将用户的命令翻译给核心进行处理,同时将核心的处理结果翻译给使用者

问题三: shell 与bash 有什么不同吗? 

shell是所有解释器的统称,而bash可以说是其中的一款解释器,就好比程序员和你之间的关系,你是程序员之一,而我们使用的Centos7.6的命令行解释器就是bash
当你每次登录的时候,那么系统就会给你创建一个对应的bash这样的进程给你进行命令行操作

 二、 Linux权限

0x01 Linux用户

Linux有俩种用户:​
①超级用户: 可以不受系统限制,在Linux下做任何事情,命令提示符是"#"​
②普通用户: 在Linux下做有限的事情,命令提示符是"$"

0x02 切换用户命令  

 命令:su - [用户名]
功能:切换用户
小提示:
①要从root用户切换到普通用户user,则使用 su- user.要从普通用户user切换到root用户则使用 su -root(root可以省略),此时系统会提示输入root用户的口令,并且如果用su -[用户名],此时root切换到普通用户是不需要输入密码的
②但是当从root用户切换到原来的普通用户不建议使用su - [用户名],而是使用快捷方式exit或者ctrl + D,因为每切换一次用户,系统就会创建一次bash进程
③并且也需要注意的是root用户的密码和普通用户的密码最好是不同的,因为如果相同,第一点,是俩个用户密码的界限不清晰,其次也不安全
④如果从用户切换到用户当然也是需要输入密码的

0x03 sudo命令

命令: sudo
功能: 临时权限提升,执行后续命令,以root身份执行
提示:输入的还是普通用户的密码

此时的文件中并没有之前所创建的root.txt,因为还没有添加信任关系,这个问题留个小悬念,等学完vim的时候我们再学习,所以此时如果我们需要更高权限,可以先使用su -命令

0x04 权限的相关概念

通俗的讲,权限由文件访问者(人) 、文件类型和访问权限(事物属性)组成,比如某个视频的vip,特定的人才能观看,而对于视频文件的读写执行也需要一定的权限

 文件的访问者的分类:
 ①所有者:文件所属的用户
 ②所属组:比如一个部门俩个组进行竞争,那么我们只想一个组内共享一个文件,那这个文件属于这个所属组       
 ③其他人: 我之外的就是其他人与root 和普通用户又有什么区别呢?拥有者、所属组、其他人 指的的是一种身份角色,而root和普通用户指的是具体的一个人,拥有者、所属组、其他 人必须对应在一个具体的人身上,即对应root用户或者普通用户

 文件类型:
-: 普通文件(文本,跟中动静态库,可执行程序,源程序)
d:目录文件
c:字符设备文件(键盘与显示器)b:块设备文件(磁盘,光驱等)
p:管道文件(通信)
l:链接文件(软连接)
提示:可以认为Linux下一切皆文件,Linux系统中,不以文件后缀作为区分文件类型的方式,但是像gcc,g++这些系统上的命令是要以后缀进行区分文件类型的

 文件权限值的表示方法:(第2-10位,表示文件所对应的属性)
权限的前三位:文件的所有者权限
权限的中间三位:文件的所属用户组的权限
权限的后三位:其他用户的权限
r: 是否具有读权限
w:是否具有写权限
x:是否具有可执行权限
提示:rwx三者顺序不可改变

0x05 chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名

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

对于普通文件没有读写执行操作会怎么样?

 从上图可知,对于普通文件的读写执行都是权限被拒绝

 对于超级用户root会有权限约束吗?

0x06 chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名

 也可以将拥有者和所属组同时更改 

0x07 chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

0x08 文件权限值的8进制数值表示方法  

 可以用8进制修改权限:

0x09 对于目录的读写执行权限  

读权限:

 写权限:

 可执行权限:

0x10 other删除文件是否因为写权限

如果目录本身对other具有写权限,other可以删除任何的目录下的文件
如果目录本身对other没有写权限,other不可以删除任何文件

那是否会有这样一种需求呢?  
other可以在特定的目录下创建文件,并写入,但是不想让任何其他人删除自己的文件

此时运用到的就是粘滞位
格式: chmod o+t dir提示:只能对目录设置,一般是限制other权限的,对设置了粘滞位的目录,在该目录下,只能是文件的拥有者或root或者该目录的所有者可以删除,其他人不能删除
应用方向:多个人或者系统会有许多临时数据,所有的临时文件会放在系统的/tmp中,此时需要把所有的权限放开,但是指向让文件的拥有者自己删除自己的文件,此时应用到的就是粘滞位

0x11 权限掩码  

 为什么创建的文件和目录的权限都是这样的呢?

默认权限:
普通文件, 最开始的权限是666
目录文件,最开始的权限是777
从上图可知权限掩码是0002,即凡是在权限掩码中出现的,都应在最开始的权限中去掉
如: 666的二进制可以写为110 110 110,权限掩码0002的二进制是000 000 010
default = default & ~(mask) : 权限掩码去翻与最开始的权限进行按位与

~(mask) : 111 111 101
最终按位与: 110 110 110
                 & 111 111  101
                -----------------------
                     110 110 100

即664,二进制为110 110 100
目录创建的权限也如上所示,结果为775

 那如何设置权限掩码呢?

 提示:设置的权限掩码只能在本次登录有效

 如上是本人对于Linux权限的一些学习,如有问题,还请评论区多多指正。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

图灵聊天机器人小程序

历时半年整理出了十多万字的学习笔记,目前依旧在更新 欢迎点赞和支持~🥳🥳🥳 博客 项目描述: 根据图灵API向聊天机器人发送聊天信息,并渲染返回的数据。具有清空聊天记录的按钮。本来是想上线…

机器学习模型的生命周期

动动发财的小手,点个赞吧! 您的模型如何变化?Source[1] 诞生 当我们构建、训练、拟合或估计我们的模型时,这些数字工具就诞生了。这个阶段几乎从拥有分析目标、数据、计算机、算法以及数据科学家现在已经非常了解的其他一切开始。…

PHP 微信小程序 WebSocket MySQL Redis实现聊天功能

1.Mysql 实现离线消息池。如果一个用户不在线,则其他用户发送给他的消息暂时存储在mysql。待该用户上线时,再从离线消息池取出发送。 2.Redis 实现每个连接websocket的服务都唯一绑定一个用户。通过用户账号 fd 存到redis中。 微信小程序:…

python实现简单的聊天小程序

概要 这是一个使用python实现一个简单的聊天室的功能,里面包含群聊,私聊两种聊天方式.实现的方式是使用套接字编程的一个使用TCP协议 c/s结构的聊天室 实现思路 x01 服务端的建立 首先,在服务端,使用socket进行消息的接受,每接受一个socket的请求,就开启一个新的线程来管理…

小程序即时聊天服务器wss,Socket/WS/WSS和小程序

Socket 通信 Socket 不属于网络协议范畴,而是在应用层和传输层之间的一个抽象层,它把 TCP/IP 层复杂的操作抽象为几个简单的接口供应用层调用。通过调用 Socket 使得程序员可以更方便地使用 TCP/IP 协议栈。 Socket 连接是长连接,理论上客户端和服务器端一旦建立连接将不会主…

用Python写一个模拟qq聊天小程序的代码实例

前言 今天小编就为大家分享一篇关于用Python写一个模拟qq聊天小程序的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Python 超简单的聊天程序 客户端: 服务器: 模拟qq聊…

支付宝小程序平台的IM聊天插件

文章目录 前言一、用户端1.基本展示2.难处理的点二、另一用户端1.前端websocket的整合2.手机息屏websocket断线问题2.websocket服务端配置3.后端整合websocket作为服务端,传输消息给前端 总结 前言 最近工作需求来了个项目,前景为在支付宝平台上发布一个…

微信小程序——聊天小程序(从搭建到结束)

具体效果展示: 微信小程序——聊天功能(一、环境搭建) 微信小程序——聊天功能(一、环境搭建)_星^0^星的博客-CSDN博客 微信小程序——聊天功能(二、账号的注册与登录) 微信聊天小程序——&a…

Java-多人聊天小程序

上图啦!!! 首先运行: Server.java 然后启动: Client.java 最后退出客户端: 代码实现 Client package chat;import javax.swing.*;public class Client {public static void main(String[] args) {// 使用…

7步搞懂手写数字识别Mnist

大家好啊,我是董董灿。 图像识别有很多入门项目,其中Mnist 手写数字识别绝对是最受欢迎的。 该项目以数据集小、神经网络简单、任务简单为优势,并且集合了CNN网络中该有的东西,可谓麻雀虽小,五脏俱全。 非常适合新手…

二开项目权限应用全流程-按钮级控制

二开项目权限应用全流程-按钮级控制 员工A和员工B都可以访问同一个页面(以员工管理为例),但是员工A可以导出excel,员工B就不可以导出excel(看不到按钮) 思路 用户登陆成功后,用户可以访问的按钮级别权限保存在point…

VISIO使用技巧汇总

0.连接线拐弯或者连接不合适 0-0.Goal ​​​​​​​ 0-1. Automatic connection 0-3.Resolvent 0-3-0.ALTF9选项,取消粘附位置调整 0-3-1.选中线段-选中中心点-shift增加直角调整合适位置

Microsoft Visio 直线连接线

Microsoft Visio 直线连接线 1. 连接线 2. 直线连接线 3. 直线连接线图 References https://yongqiang.blog.csdn.net/

visio画太极图

步骤一 添加两个圆,且大圆的半径是小圆的2倍。 步骤二 往小圆添加一条直线作为直径 步骤三 选中小圆和直径,依次点击开发工具–操作–连接,然后选中连接后的小圆,再依次点击开发工具–操作–修建,可以分离出如下所示的两个…

visio 2007 画直线和矩形

visio 2007 画直线和矩形 1.问题描述 在一些图形中如果直接用连接线,会直接连到一些不理想的位置,而2007中不像2013及其以后那些版本中,有侧边栏能够直接画直线。 2.解决方式 直接选择工具栏中的红圈中的图标 能够生成红圈中的工具栏 然…

Visio对mysql怎么画er图_怎么用Visio画ER图

展开全部 画法如下: 1、由于Visio 2003默认的绘图模板并没有32313133353236313431303231363533e4b893e5b19e31333339653661E-R图这一项,但是画E-R图必须的基本图形Visio 2003还是有的,所以就得先把必要的图形添加到“我的模板”。以添加椭圆和…

Visio2010中设置线为直线

Visio2010中设置线为直线 在Visio2010中默认的线不是直线而是曲线,在画图中需要使用直线时要进行设置,下面介绍Visio2010中设置直线的方法。 1、打开Visio2010,然后点击设计: 2、点击调整大小下面的三角: 3、进入页面…

visio绘制流程图连接线总拐弯

描述 如图所示绘制流程图的连接线总拐弯 很让我强迫症发作 可以看到垂直的连接线总是会自动拐个弯 相关技巧 有说连接线中间点可以控制和增加中间点 或者按住shift 进行调整 这个还没研究明白咋操作不过没解决本质问题 此外还可以右键修改连接线属性 还可以在设计中进行调…

visio插入箭头_visio流程图中画箭头

visio流程图中画箭头 随着社会和经济的发展,电脑visio 2019软件已经成为我们生活中必不可少的一部分。visio 2019软件常常被我们使用于流程图的制作,很多第一次接触的朋友们不知道怎么在visio 2019软件制作流程图,接下来就让小编来教你们吧。 具体如下: 1. 第一步,打开电脑…

visio绘图小技巧

1.如何在图框的任意位置添加点? 先选中x点指令,再按住ctrl键,即可在任意位置画点 2.如何画出锯齿形线段? visio里面好像没有现成的锯齿形线段,所以可以利用直线反复折画,但是这里有个小技巧,就…