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

【Linux】权限篇(二)

权限目录

  • 1. 前言
  • 2. 权限
    • 2.1 修改权限
    • 2.2 有无权限的对比
    • 2.3 另外一个修改权限的方法
      • 2.3.1 更改用户角色
      • 2.3.2 修改文件权限属性
  • 3. 第一个属性列
  • 4. 目录权限
  • 5. 默认权限

1. 前言

在之前的一篇博客中分享了关于权限的一些知识,这次紧接上次的进行,有需要了解上次的可以点这个链接: link。
话不多说,继续开始权限篇。

2. 权限

2.1 修改权限

我们需要先知道,一个文件的权限,谁能修改?
一般来说有两个:一个是文件的拥有者,另外一个是root。

要修改文件的权限需要一个命令chmod
举个例子:将a.txt中拥有者的权限中,去掉r。
我们来看一下:

chmod u-r a.txt

在这里插入图片描述
也可以同时去掉多个权限,比如:将b.txt中拥有者的rw都去掉
在这里插入图片描述

可以同时去掉,当然也可以同时加上:
将a.txt中拥有者的rwx都加上:
在这里插入图片描述
这里拥有者u表示,所属组g表示,other用o表示。也可以全部都同时加减全限,此时用all

来看一个所属组的例子:
去掉a.txt中所属组r的权限:

chmod g-r a.txt

在这里插入图片描述

如果想同时操作多个对象,也是一样的,举个例子:将a.txt中拥有者去掉r,所属组去掉w。

chmod u-r,g-w a.txt

在这里插入图片描述
所以我们可以更改一个人的一个权限,一个人的多个权限,多个人的一个权限,多个人的多个权限,不过组合时用逗号做分离。

如果给所有人都加上同一个权限,可以直接用all。
举个例子:将b.txt中所有人都加上w。

chmod a+w b.txt

在这里插入图片描述
总之:
在这里插入图片描述
u,g,o位置可以随便写,但不建议。

2.2 有无权限的对比

用普通账号创建一个文件t.txt
在这里插入图片描述
去掉文件的所有权限后,执行读文件和向文件写入,发现都不行。
在这里插入图片描述

对于普通用户,自身要受到对应权限的约束,即使这个文件是直接的。


当把t.txt中所有的权限全部去掉之后,root还是想写入就能写,想读就能读。
在这里插入图片描述
root账号不受权限的约束。

当把账号切换成普通用户时,属于other,没有读写权限,我们发现不能读写t.txt。

在这里插入图片描述
所以说普通用户是受到权限的约束的。

总之:权限存在的意义就是保证普通用户的文件的一般安全性。


在身份识别的时候,只识别一次。

更改文件的拥有者,先切换到root账号下。
把文件的拥有者改为root

chown root t.txt

在这里插入图片描述
给所属组加上rw权限
在这里插入图片描述
当zxctscl不是拥有者时,自动匹配到后面的所属组。
发现所属组仍然可以读写。
在这里插入图片描述
把文件的所属组也改为root

 chgrp root t.txt

在这里插入图片描述
切换为普通账号时,发现不能读写了:
在这里插入图片描述

给other加上rw权限

chmod o+rw t.txt

在这里插入图片描述
这时使用普通账户就能继续进行读写。
在这里插入图片描述
所以说:访问一个文件时,得先判定相对于这个文件来说是拥有者、所属组还是other,然后再在这个33为一组特定的权限列表里,进行权限识别,然后才能决定到底能不能访问这个文件。

2.3 另外一个修改权限的方法

2.3.1 更改用户角色

用普通账户新建一个文件file.txt
在这里插入图片描述
想把文件的拥有者改为rjjjcph,但是不被允许:
在这里插入图片描述
所以说在把文件给别人时候,可能权限不允许,但是又要把文件给别人时,如果是普通账户就强制给,加上sudo。而root账号不需要加。

sudo chown rjjjcph file.txt

在这里插入图片描述
把指令进行提权,把文件给别人是强制给的。

把所属组也改为rjjjcph:
在这里插入图片描述
那么怎么改回去呢?
直接sudo chown

sudo chown zxctscl:zxctscl file.txt

在这里插入图片描述

也可以将拥有者改为zxctscl,将所属组改为root

sudo chown zxctscl:root file.txt

在这里插入图片描述
那么为什么不需要修改other呢?
但修改了拥有者和所属组,那么other自然也就改变了。

2.3.2 修改文件权限属性

在之前就谈到:
在这里插入图片描述
有就对应1,没有就对应0。
在这里插入图片描述
所以对于a.txt中的
拥有者: 110 -> 6
所属组:110 -> 6
other:100 -> 4
用8进制表示就是664

所以可以用8进制来表示权限。
举个例子:把所有人的所有权限都加上

chmod 777 a.txt

在这里插入图片描述
只想保留u和g的rw就是660:

chmod 660 a.txt

在这里插入图片描述
总之第二种修改文件权限属性的方法就是

chmod 八进制 filename

3. 第一个属性列

在这里插入图片描述
在window中是通过文件的后缀来判断文件类型。
Linux并不是通过文件后缀来判断的,那么它是怎么区别的呢?
通过第一个属性列来区分。

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

常见的就是-和d.
在这里插入图片描述
mkdir创建的目录,就是以d开头。

磁盘:

在这里插入图片描述
显示器就是字符设备:

在这里插入图片描述


在这里插入图片描述
Linux系统不以文件后缀作为区分文件类型,但并不是代表gcc不需要。
所以说Linux!=gcc
也就是说Linux不区分文件类型,但是Linux上面的工具可能会区分。
所以我们可以对Linux的文件使用后缀。

4. 目录权限

如果我们进入一个目录,那么需要什么权限呢?
在这里插入图片描述
先去掉拥有者目录的r,结果显示能进入目录:
所以进入一个目录与r无关
在这里插入图片描述
但是不能查看指定目录内的信息
在这里插入图片描述


加上r,去掉w,看看能不能进入一个目录?

在这里插入图片描述

发现是可以进入目录的。
在这里插入图片描述
但是不能创建一个文件。
在这里插入图片描述


加上r,去掉w,看看能不能进入一个目录?
在这里插入图片描述
发现不能进入目录了。

总之:
目录的r权限:用户能否查看指定目录内的信息。
目录的w权限:决定用户是否能在指定目录内新建、修改、删除文件。
目录的x权限:决定用户能否进入一个目录

5. 默认权限

在Linux创建文件的时候,为什么好像有默认权限?为什么就是我们所看到的这样?
在这里插入图片描述
创建普通文件时,起始权限是:0666,去掉x
创建目录文件时,起始权限是:0777,包含x

我们使用umask来看看默认值,不同的平台可能会有不同,这个是正常的。

在这里插入图片描述
这个默认值代表创建文件时,要从起始权限中,过滤掉。

我们也可以修改默认值:
在这里插入图片描述
此时新的文件权限默认权限就改变了。
在这里插入图片描述

来计算一下普通文件,显示的权限怎么来的:
先将umask按位取反,在将666与取反之后的进行按位与,最后得到的就是664,刚好就是rw-r–r–
在这里插入图片描述
在这里插入图片描述

有错误请指出,大家一起进步吧!

相关文章:

【Linux】权限篇(二)

权限目录 1. 前言2. 权限2.1 修改权限2.2 有无权限的对比2.3 另外一个修改权限的方法2.3.1 更改用户角色2.3.2 修改文件权限属性 3. 第一个属性列4. 目录权限5. 默认权限 1. 前言 在之前的一篇博客中分享了关于权限的一些知识,这次紧接上次的进行,有需要…...

reduce累加器的应用

有如下json数据,需要统计Status的值为0和1的数量 const data {"code": "001","results": [{"Status": "0",},{"Status": "0",},{"Status": "1",}] }方法一:用reduce方…...

助力硬件测试工程师之EMC项目测试。

1:更新该系列的目的 接下来的一个月内,将更新硬件测试工程师的其中测试项目--EMC项目,后续将会出安规等项目,助力测试工程师的学习。 2:如何高效率的展现项目的基础以及一些细节知识点 通过思维导图以及标准的规定进行…...

Github 2023-12-23 开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-23统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6C项目2C项目1Jupyter Notebook项目1HTML项目1Go项目1非开发语言项目1 免费API集体清单 创建周期…...

Quartz.net 正则表达式触发器

1、创建项目 项目类型控制台应用程序,.Net Framework框架版本 4.7.2 2、引入框架 NuGet\Install-Package Quartz -Version 3.8.0 3、创建Job 自定义Job实现接口IJob,在Execute方法实现定时逻辑, using Quartz; using System; using Sys…...

【已解决】修改了网站的class样式name值,会影响SEO,搜索引擎抓取网站及排名吗?

问题: 修改了网站的class样式name值,会影响搜索引擎抓取网站及排名吗? 解答: 如果你仅仅修改了网站class样式的名称,而没有改变网站的结构和内容,那么搜索引擎通常不会因此而影响它对网站的抓取和排名。但…...

微信小程序开发系列-02注册小程序

上一篇文章,创建了一个最小的小程序,但是,还有3个疑问没有弄清楚,还是基于demo1工程,这篇文章继续探索。 当前的目录结构是否是完备的呢?(虽然小程序可以运行起来)app.js文件内容还…...

安装 PyCharm 2021.1 保姆级教程

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 目前能下载到的最新版本是 PyCharm 2021.1。 请注意对应 Python 的版本&#xff1a; Python 2: 2.7Python 3: >3.6, <3.11…...

浏览器 cookie 的原理(详)

目录 1&#xff0c;cookie 的出现2&#xff0c;cookie 的组成浏览器自动发送 cookie 的条件 3&#xff0c;设置 cookie3.1&#xff0c;服务端设置3.1&#xff0c;客户端设置3.3&#xff0c;删除 cookie 4&#xff0c;使用流程总结 整理和测试花了很大时间&#xff0c;如果对你有…...

StringBuilder和StringBuffer区别是什么?

想象一下&#xff0c;你在写信&#xff0c;但是你需要不断地添加新的内容或者修改一些词句。在编程中&#xff0c;当你需要这样操作字符串时&#xff0c;就可以用StringBuffer或StringBuilder。 StringBuffer StringBuffer就像是一个多人协作写作的工具。如果你和你的朋友们一…...

【数据分析】数据指标的分类及应用场景

数据分析之数据指标的分类 数据分析离不开对关键指标的分析与跟踪&#xff0c;这些指标通常与具体的业务直接相关。好的指标能够促进业务的健康发展&#xff0c;因为指标与业务目标是一致的&#xff0c;此时指标就能反映业务变化&#xff0c;指标发生变化&#xff0c;行动也发…...

首涂第二十八套_新版海螺M3多功能苹果CMSv10自适应全屏高端模板

首涂第二十八套_新版海螺M3多功能苹果cmsv10自适应全屏高端模板 多功能苹果cmsv10自适应全屏高端模板开源授权版 这是一款带“主题管理系统”的模板。这是一款好模板。 花大价钱收购了海螺这两个模板的版权。官方正品&#xff0c;非盗版。关闭域名授权 后台自定义菜单 请把…...

MatGPT - 访问 OpenAI™ ChatGPT API 的 MATLAB® 应用程序

系列文章目录 前言 MatGPT 是一款 MATLAB 应用程序&#xff0c;可让您轻松访问 OpenAI 的 ChatGPT API。使用该应用程序&#xff0c;您可以加载特定用例的提示列表&#xff0c;并轻松参与对话。如果您是 ChatGPT 和提示工程方面的新手&#xff0c;MatGPT 不失为一个学习的好方…...

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot 起因&#xff1a;我接手tomcat-springmvc-hibernate项目&#xff0c;使用tomcat时问题不大。自从信创开始&#xff0c;部分市场使用国产中间件&#xff0c;例如第一次听说的宝兰德、东方通&#xff0c;还…...

浅述无人机技术在地质灾害应急救援场景中的应用

12月18日23时&#xff0c;甘肃临夏州积石山县发生6.2级地震&#xff0c;震源深度10千米&#xff0c;灾区电力、通信受到影响。地震发生后&#xff0c;无人机技术也火速应用在灾区的应急抢险中。目前&#xff0c;根据受灾地区实际情况&#xff0c;翼龙-2H应急救灾型无人机已出动…...

js-cookie的使用以及存储token安全的注意要点

js-cookie的使用以及存储token安全的注意要点 npm 安装 npm i js-cookie -S // https://www.npmjs.com/package/js-cookie引入使用 import Cookies from js-cookie获取 Cookies.get(token); // 读取token Cookies.get() // 读取所有可见的 Cookie > { token: value }设置…...

Android 网络状态判断

1、获取网络信息&#xff0c;首先需要获取权限 <uses-permission android:name"android.permission.INTERNET" /> <uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" /> 2.1我们通过ConnectivityManager可以获取状态…...

管理类联考——数学——真题篇——按知识分类——代数——数列

【等差数列 ⟹ \Longrightarrow ⟹ 通项公式&#xff1a; a n a 1 ( n − 1 ) d a m ( n − m ) d n d a 1 − d A n B a_n a_1(n-1)d a_m(n-m)dnda_1-dAnB an​a1​(n−1)dam​(n−m)dnda1​−dAnB ⟹ \Longrightarrow ⟹ A d &#xff0c; B a 1 − d Ad&#x…...

.net core webapi 自定义异常过滤器

1.定义统一返回格式 namespace webapi;/// <summary> /// 统一数据响应格式 /// </summary> public class Results<T> {/// <summary>/// 自定义的响应码&#xff0c;可以和http响应码一致&#xff0c;也可以不一致/// </summary>public int Co…...

SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载

作者&#xff1a;yx 文章目录 一、发布服务二、代码加载三、结果展示 一、发布服务 SuperMap iServer支持将地图发布为ArcGIS REST地图服务&#xff0c;您可以在发布服务时直接勾选ArcGIS REST地图服务&#xff0c;如下图所示&#xff1a; 也可以在已发布的地图服务中&#x…...

python调用GPT API

每次让gpt给我生成一个调用api的程序时&#xff0c;他经常会调用以前的一些api的方法&#xff0c;导致我的程序运行错误&#xff0c;所以这期记录一下使用新的方法区调用api 参考网址 Migration Guide&#xff0c;这里简要地概括了一下新版本做了哪些更改 OpenAI Python API l…...

ModuleNotFoundError: No module named ‘tensorflow‘

直接运行pip install tensorflow安装成功之后&#xff0c;发现版本是tensorflow2.15.0 python的版本是3.9版本 导入包&#xff1a;import tensorflow 打包xxx.exe,调用之后提示错误 ModuleNotFoundError: No module named tensorflow 最后发现特定的python的版本对应特定的t…...

智能优化算法应用:基于鹰栖息算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鹰栖息算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鹰栖息算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鹰栖息算法4.实验参数设定5.算法结果6.参考文…...

自定义Taro上传图片hooks(useUploadImg)

有两个方法需要提前引入 FileUtil(上传文件的方法)、to&#xff08;对请求接口返回做了二次处理&#xff0c;数据和错误提示等&#xff09; //FileUtil export namespace FileUtil {const env {timeout: 10000,uploadImageUrl: "阿里云的地址",};const genPolicy …...

量子密码学简介

量子密码学&#xff08;英语&#xff1a;Quantum cryptography&#xff09;泛指利用量子力学的特性来加密的科学。量子密码学最著名的例子是量子密钥分发&#xff0c;而量子密钥分发提供了通信两方安全传递密钥的方法&#xff0c;且该方法的安全性可被信息论所证明。目前所使用…...

使用docker创建自己的Android编译容器

文章目录 背景步骤1.创建Dockerfile2.编写Dockerfile指令3.编译4.使用 背景 每次拿到新机器或者系统重装&#xff0c;最麻烦的就是各种环境配置&#xff0c;最近学习了一下docker的知识&#xff0c;用dockerfile创建一个Android编译容器&#xff0c;这样就不用每次都吭哧吭哧的…...

4-Docker命令之docker load

1.docker load介绍 docker load命令是用来将从tar归档文件载入镜像 docker load命令相对应的命令是docker save 2.docker load用法 docker load [参数] [root@centos79 ~]# docker load --helpUsage: docker load [OPTIONS]Load an image from a tar archive or STDINAli…...

微信小程序格创校园跑腿小程序源码v1.1.64+前端

简介&#xff1a; 版本号&#xff1a;1.1.64 – 多学校版本 本次更新内容&#xff1a; 订单问题修复 &#xff08;无需上传小程序&#xff09; 版本号&#xff1a;1.1.63 – 多学校版本 本次更新内容&#xff1a; 失物招领增加内容安全接口&#xff1b; 认证增加性别选…...

【单元测试】测还是不测,这是一个问题

这篇文章也可以在我的博客中查看 “册”那&#xff01;&#xff01; 相信大家从小就被千叮万嘱要做单元测试。然后秉承这一信念&#xff0c;成为了一个测试狂魔。凡有代码&#xff0c;测&#xff01;覆盖&#xff01;最终&#xff0c;一波操作猛如虎&#xff1a;467测试&…...

Global Mapper SDK 19 中文开发文档(八)

7.2.8 GM_DBUtil &#xff08;1&#xff09;声明 public static class GM_DBUtil &#xff08;2&#xff09;方法 方法描述DBGetTableList获取指定空间数据库中的表列表DBIsDatabaseFile指示输入文件是否为数据库&#xff08;Esri地理数据库、Spatialite等&#xff09;DBMa…...

班级网页设计模板图片/搜索引擎优化时营销关键词

试验一&#xff1a;配置区域与转发器 一、 添加DNS服务器角色 二、 创建区域&#xff0c;添加主机记录 三、 设置转发器 四、 验证DNS服务器...

企业信息管理系统源码/廊坊百度seo公司

在index.aspx<head></head>中加入如下代码&#xff0c;这3个文件可以在网上直接收索名字下载 [javascript] view plaincopy <mce:script type"text/javascript" src"jquery-1.2.6.pack.js" mce_src"jquery-1.2.6.pack.js">&l…...

宜春做网站 黑酷seo/市场营销推广策划方案

cuda历史各个版本下载链接 https://developer.nvidia.com/cuda-toolkit-archive 1、下载deb包 按照指令要求下载 注意&#xff1a; sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb sudo apt-key add /var/cuda-repo-/7fa2af80.pub (这步需注意…...

珠海网站建设小小网络/网络公关公司

题意&#xff1a;给定你a&#xff0c;b 问你从a加到b进了多少次位 解题思路&#xff1a;判断a-b每一位上一共有多少个1&#xff0c;然后计算进位即可 解题代码&#xff1a; 1 {2 num1[i] - (a%k - k/2);3 }4 5 if( a < k/2 &&am…...

做网站分销违法吗/沈阳优化推广哪家好

显卡驱动程序就是用来驱动显卡的程序&#xff0c;它是硬件所对应的软件。驱动程序即添加到操作系统中的一小块代码&#xff0c;其中包含有关硬件设备的信息。有了此信息&#xff0c;计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件&#xff0c;可以…...

做学校的网站推广发展前景/搜索引擎公司排名

转载自&#xff1a;https://gist.github.com/andrewjong/6b02ff237533b3b2c554701fb53d5c4d&#xff0c;本文只做个人记录学习使用&#xff0c;版权归原作者所有。 import torch from torchvision import datasetsclass ImageFolderWithPaths(datasets.ImageFolder):"&qu…...