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

【Linux】:权限

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux的基础知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!

C 语 言 专 栏:C语言:从入门到精通

数据结构专栏:数据结构

个  人  主  页 :stackY、

C + + 专 栏   :C++

Linux 专 栏  :Linux

目录

1. shell命令以及运行原理

2. Linux权限的概念

3. Linux权限管理

3.1 文件访问者的分类

3.2 访问权限

3.3 基本权限 

3.4 文件权限值表示方式

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

4.1 chmod命令权限值的格式: 

4.2  chown命令

4.3 chgrp命令 

5. 探究文件的默认权限 

5.1 umask命令 

5.2 file命令 

6. 目录的权限

6.1 粘滞位

7. 权限的总结 


1. shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)” ,但我们一般用户,不能直接使用kernel。
而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel
 

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

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

对比windows GUI:我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。


shell 对于Linux:有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

外壳存在的意思:1. 命令解释   2. 保护内核

2. Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。

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

命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

3. Linux权限管理

在Linux中,每当我们创建一个目录或文件,在文件名称前面都有一串数字字母,那这些神秘的数字字母都表示什么意思呢?

1. Linux文件类型:

  • -:普通文件、源代码、可执行程序、库等
  • d:目录文件
  • c:字符设备文件
  • b:块设备文件
  • i :链接文件
  • p:管道文件
  • s:套接口文件

2. 权限是伴生文件的

3. 文件的其他属性

3.1 文件访问者的分类

  • 文件和文件目录的所有者:u---User
  • 文件和文件目录的所有者所在的组的用户:g---Group
  • 其它用户:o---Others (其他人)

3.2 访问权限

3.3 基本权限 

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

描述一个文件的权限:

该文件的拥有者权限为可读可写不可执行,所属组权限为可读不可写不可执行,Other权限为可读不可写不可执行。

3.4 文件权限值表示方式

1. 字符表示法

Linux表示说明Linux表示说明
r--只读-w-仅限写
--x仅可执行rw-可读可写
r-x可读可执行-wx可写可执行
rwx可读可写可执行---无任何权限

2. 八进制表示法

权限符号八进制二进制
r--4100

-w-

2010
--x1001
rw-6110
r-x5101
-wx3011
rwx7111
---0000

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

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

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

4.1 chmod命令权限值的格式: 

① 用户表示符+/-=权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

chmod u-r 文件:将该文件权限的拥有者去掉读权限

chmod g+x 文件:将该文件权限的所属组加上可执行权限

chmod u+r,g-x,o+w 文件:将文件权限的拥有者加上读权限,所属组减去可执行权限,Other加上写权限

chmod o=rwx 文件:将该文件权限的Other赋予指定的权限

chmod a+x 文件:将文件权限的所有成员都加上可执行权限

② 三位8进制数字
 根据文件权限的8进制表示方法也可以使用:

chmod 三位8进制数字 文件

4.2  chown命令

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
chown 用户 文件:将该文件的拥有者修改为指定用户(root账号操作)

4.3 chgrp命令 

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

  • -R 递归修改文件或目录的所属组

chgrp 用户 文件:将文件的所属组改为指定的用户

普通用户下需要使用sudo来进行提权

sudo chown 用户:用户 文件:将该文件的拥有者和所属组修改为指定用户

5. 探究文件的默认权限 

每当我们创建一个新的文件或者目录时,它们都会自带有一定的默认权限,那么这些默认的权限到底有什么含义呢?我们一起来看一看:

那么这些默认权限是如何得到的呢?

5.1 umask命令 

功能:查看或修改文件掩码
新建文件夹起始权限=0666
新建目录起始权限=0777

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


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

umask 权限值:修改文件掩码

5.2 file命令 

功能说明:辨识文件类型。
语法:file [选项] 文件或目录...
常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容。

6. 目录的权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

1. 目录无可执行权限

2. 目录无可读权限

3. 目录无可写权限

注意:

只要这个目录的Other具有写入的权限,那么既可以在该目录中进行创建,也可以进行删除,那么就存在一个问题,在一个Linux下存在许多账户,那么别人能不能进入我的目录随便删除我的文件呢?答案是不会的,一般而言,不同的账号是不会在同一个目录下的。

那么就存在一个特殊情况,多个账号相互合作,共享一些数据,那么这种情况该怎么做呢?

例如:Y用户想要将自己的数据分享给J用户,那么Y用户首先在创建了一个自己的目录,里面存放共享的数据:

如果L用户也想将自己的数据分享到这个公共目录中,那么就需要拥有w权限,而一旦w权限开放,L用户不仅可以进行写入,也可以进行删除:

那么这样子就有点不符合实际了,Y用户想要的效果是:L用户可以进入,可以查看,还可以写入,但是万万不能删我文件。那么如果Y用户又取消掉w权限的话,L用户又不能进行写入,那这该怎么办呢?

6.1 粘滞位

功能:让该目录中文件只能由该目录的拥有者进行删除,或者是超级管理员进行删除。

格式:chmod +t 目录

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

  • 一、超级管理员删除
  • 二、该目录的所有者删除
  • 三、该文件的所有者删除

7. 权限的总结 

  • 1. 目录的可执行权限是表示你可否在目录下执行命令。
  • 2. 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 3. 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

朋友们、伙计们,美好的时光总是短暂的,我们本期的的分享就到此结束,欲知后事如何,请听下回分解~,最后看完别忘了留下你们弥足珍贵的三连喔,感谢大家的支持!

相关文章:

【Linux】:权限

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux的基础知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数…...

8年软件测试工程师感悟——写给还在迷茫中的朋友

这两天和朋友谈到软件测试的发展,其实软件测试已经在不知不觉中发生了非常大的改变,前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经基本饱和。当然&a…...

CleanMyMac苹果电脑清理软件是智商税吗?最全评测价格、清理效果一次说清

这是一篇CleanMyMac最全评测!价格、清理效果一次说清,告诉你它真不是智商税! 升级Ventura系统之前,我用的是CleanMyMac X绿色版(绝不提倡这个行为)。更新到Ventura之后,之前很多绿色软件失效,浪…...

【pytorch 中 torch.max 和 torch.argmax 的区别】

torch.max 和 torch.argmax 的区别 1.torch.max torch.max(input, dim, maxNone, max_indicesNone, keepdimFalse) -->> (Tensor, LongTensor) 作用:找出给定tensor的指定维度dim上的上的最大值,并返回最大值在该维度上的值和位置索引。 应用举…...

无效的 page.json [“window“] 页面.json配置了“window“: {“disableScroll“: true}

问题:启动小程序时报错 无效的 page.json ["window"] 页面 解决: app.json 全局配置才使用window对象,在单独的页面直接写disableScroll:true即可 //app.json中添加,window里面添加就可以了 "window": { …...

2023最新短视频配音软件~

随着互联网的迅猛发展,网络平台上的影视剧配音逐渐成为一种热门赚钱方式。那么,想要参与影视剧配音赚钱,就需要拥有一款好用的配音软件。下面我就为大家介绍一款最新的影视剧配音神器! 悦音配音 这是一款大家都在用的配音工具&am…...

【内网击穿工具 】NATAPP

内网穿透又叫内网映射,功能是把内网IP映射到公网,使公网也能轻松访问所搭建的服务。 内网与外网 外网指的是一个组织或网络中可公开访问的网络,即对外开放的网络。外网可以通过公共互联网进行访问 内网是相对于外网而言的,指的…...

vue 使用crypto.js解密后,用JSON.parse转义报错非空白格解决办法

问题: 用JSON.parse转义crypto解密后的json字符串会发生错误。如图: 原因: 那是因为crypto自己加了一些未可见的字符,所以用正常的JSON.parse(xxxx)会报错。 解决办法: JSON.parse(xxxx.replace(/[\u0000-\u001F\u…...

全景分割的自监督学习

在本章中,我们将第3章中讨论的SSL方法扩展到语义和全景分割任务。使用手动生成的标签训练的卷积神经网络通常用于语义或实例分割。 在精准农业中,自动化花朵检测方法使用监督模型和后处理技术,随着花朵的外观和数据采集条件的变化,这些技术可能无法始终如一地执行。我们提…...

基于python的23种设计模式

以下是基于Python实现的23种设计模式及代码段和详细解释: 1. 工厂模式(Factory Pattern) 简介 工厂模式是一种创建型设计模式,它允许客户端代码通过工厂方法创建对象,而无需直接实例化对象。在工厂方法模式中&#…...

屏幕录制视频编辑软件 Camtasia 2023 mac中文版软件功能

Camtasia 2023 mac是一款功能强大的屏幕录制和视频编辑软件,可以用于制作教育课程、演示文稿、培训视频等。它具有一系列工具和功能,包括屏幕录制、视频编辑、音频编辑、字幕、特效等,使用户可以轻松地创建高质量的视频内容。 Camtasia2023的…...

关于spring的xml文件中的xmlns,xsi,schemaLocation

关于spring xml文件中的xmlns,xsi:schemaLocation 首先我们看到的一个spring的配置文件大概如下面这个样子&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans" //这表…...

mac-“准备安装时发生错误,请尝试重新运行此应用程序” + mac未能安装所需的固件更新

参考链接&#xff1a;参考 u盘安装时候遇到问题&#xff1a; 安装系统时候报错 解决方案&#xff1a; 根据u盘系统上进行格式化磁盘&#xff0c;&#xff08;我选择的是APFS&#xff09;&#xff0c;命名Macintosh HD 抹完之后选择急救下。 然后退出磁盘工具&#xff0c;点击…...

二叉搜索树的详解及Map和Set的介绍

目录 1.二叉搜索树 1.1二叉搜索树的介绍 1.2.二叉搜索树的实现 1.2.1二叉搜索树的创建 1.2.2查找关键字 1.2.3插入 1.2.4删除 1.3二叉搜索树的性能分析 2.Map Map官方文档 2.1Map 的常用方法说明 2.2关于Map.Entry的说明,> 2.3注意事项 2.4reeMap和HashMap的区别 …...

【Android知识笔记】JNI专题

一、JNI 基础知识 JNI 的数据类型以及和Java层之间的数据转换 前面总结了一篇,这里不再展开,可以参考: JNI 的数据类型以及和Java层之间的数据转换 注:这些知识都收集自网络文章,比较零散,对于JNI基础来说应该够用了。主要是一些API的使用,记不住时当成手册来查询一下…...

C++面试题目汇总【持续更新】

面试题目汇总 C基础1. 面向对象是什么&#xff1f;[GPT]2. 面向对象的三大特征是什么&#xff1f;[GPT]3. 重载&#xff0c;重写&#xff0c;隐藏的区别&#xff1f;[GPT]4. 构造函数的类别有哪些&#xff1f;[GPT]5. 定义一个空类时&#xff0c;默认生成哪些函数&#xff1f;[…...

【PXIE301-211】青翼科技基于PXIE总线的16路并行LVDS数据采集、1路光纤数据收发处理平台

板卡概述 PXIE301-211是一款基于PXIE总线架构的16路并行LVDS数据采集、1路光纤收发处理平台&#xff0c;该板卡采用Xilinx的高性能Kintex 7系列FPGA XC7K325T作为实时处理器&#xff0c;实现各个接口之间的互联。板载1组64位的DDR3 SDRAM用作数据缓存。板卡具有1个FMC&#xf…...

WPF实现签名拍照功能

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程的集成方法与步骤(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 前面讲了集成的后端部分内容&#xff0c;下面简单介绍一下前端的内容 1、前端生成的页面需要进行修改&…...

【Qt控件之微调框、进度条】QSpinBox、QDoubleSpinBox、QDial、QProgressBar介绍及使用

概述 QSpinBox类提供了一个微调框小部件。 QSpinBox适用于处理整数和离散的值集&#xff08;例如&#xff0c;月份名称&#xff09;&#xff1b;对于浮点数值&#xff0c;请使用QDoubleSpinBox。 QSpinBox允许用户通过点击上下按钮或按键盘上的上下箭头来增加/减少当前显示的值…...

Python学习-----Day09

一、利用装饰器来获取函数运行的时间、 #导入time模块 import timedef decorated(fn):def inner():#time.time获取函数执行的时间a time.time() # func开始的时间fn()b time.time() # func结束的时间print(f"{fn.__name__}程序运行的总数时间:{b - a}秒")return…...

世界国家/地区行驶方向数据

Part1数据背景 道路通行方向规则是交通规则的重要部分之一。不同国家及地区通行方向并不一样&#xff0c;受风俗、习惯、风潮因素等影响。 最近也在学道路行驶&#xff0c;结果差强人意&#xff0c;继续努力吧。祝学车的小伙伴们一次过~ Part2数据详情 今天分享的国家/地区行…...

idgen导入Android11源码

文章目录 配置下载AS编译源码依赖导入玩一下andorid.iml 注意&#xff1a; 有些时候发现为啥自己编译就这么难呢&#xff1f;不是卡死就无数次重启虚拟机&#xff0c;一切的原罪在配置过低&#xff0c;换句话说就是穷。关于导入源码的下载参考 Android Studio for Platform (AS…...

大同小异!如何在苹果不同类型设备上更改AirDrop的名称

你可以更改你的AirDrop ID&#xff0c;让其他人看到你名字之外的东西。本文介绍了如何在iPhone、iPad和Mac上更改AirDrop名称。 如何在iPhone上更改AirDrop名称 在iPhone上更改AirDrop名称涉及到你可能不想做的更改。幸运的是&#xff0c;这在iPad和Mac上不是真的&#xff0c…...

sqlmap --os-shell选项原理解析

文章目录 sqlmap --os-shell选项原理解析原理解析总结 sqlmap --os-shell选项原理解析 以sqli第一关为例。 --os-shell 是 SQLMap 工具的一个参数&#xff0c;用于在成功注入数据库后&#xff0c;执行操作系统命令并获取其输出。 sqlmap -u "http://192.168.188.199/sq…...

谈谈 Redis 持久化机制,RDB、AOF

谈谈 Redis 持久化机制&#xff0c;RDB&#xff0c;AOF RDB&#xff1a;相当于对内存中的数据&#xff0c;拍一张数据快照。存储的是数据。 AOF&#xff1a;存储的是具体的命令。 企业实践中&#xff0c;实际是使用RDB结合AOF。 这个方法是在 Redis 4.0 提出的&#xff0c;该方…...

并发编程——2.基础概念及其它相关的概述

这篇文章我们来讲一下并发编程中的线程及其相关的概述内容。 目录 1.J.U.C 2.进程、线程、协程 2.1进程 2.2线程 2.3纤程&#xff08;协程&#xff09; 2.4概念小结 3.并发、并行、串行 3.1并发 3.2并行 3.3串行 3.4概念小结 4.CPU核心数和线程数的关系 5.上下文…...

20231019 filezilla 配置 Windows与Ubuntu文件传输

SFTP协议&#xff0c;传文件&#xff0c;否则会报无权限错...

一个.Net开发的轻量级SQLite数据库ORM

SQLite是一种流行的开源关系型数据库&#xff0c;它的设计目标是提供轻量级、高效、可靠和易用的数据存储服务。由于SQLite无需单独的服务器进程&#xff0c;它通常被用于嵌入式系统和单机应用程序中&#xff0c;也可以用于网络应用程序的辅助数据库。 今天给大家推荐一个.NET开…...

gRPC通信

1. gRPC简介 gRPC是一种高性能、开源和通用的远程过程调用&#xff08;RPC&#xff09;框架&#xff0c;由Google开源并维护。它使用Protocol Buffers&#xff08;protobuf&#xff09;作为接口定义语言&#xff08;IDL&#xff09;&#xff0c;提供跨平台、跨语言的RPC调用支…...