【Linux】权限问题

Linux权限

  • 一、Linux 权限的概念
  • 二、Linux 权限管理
    • 1. 文件访问者的分类
    • 2. 文件类型和访问权限(事物属性)
    • 3. 文件访问权限的相关设置方法
  • 三、默认权限
    • 1. 对文件和目录进行操作需要的权限
    • 2. 文件和目录的默认权限
    • 3. 粘滞位

一、Linux 权限的概念

Linux 下有两种用户:超级用户(root)、普通用户。
超级用户:可以在 Linux 系统下做任何事情,不受限制;
普通用户:在 Linux 下做有限的事情。
超级用户的命令提示符是 “#” ,普通用户的命令提示符是 “$”

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

在这里插入图片描述

二、Linux 权限管理

我们在使用 ll 指令的时候,通常会看到文件或目录名前面有一串的数据,那么它们是表示什么意思呢?例如下图红色框中:

在这里插入图片描述

首先我们知道,下面三列就是时间,准确来说是上一次修改文件或目录的时间:

在这里插入图片描述

然后就是下面这一列的数字,就是表示文件或目录的大小:

在这里插入图片描述
再下来我们了解两列 lmy 表示什么。

1. 文件访问者的分类

首先我们先要了解,文件访问者的分类分为三类:

  1. 文件和文件目录的所有者:u—User
  2. 文件和文件目录的所有者所在的组的用户:g—Group
  3. 其它用户:o—Others

而在我们下图中的两列 lmy中,第一列 lmy 表示的是 user,第二列表示 group,如下图:

在这里插入图片描述

而除了 usergroup 之外,就是属于 other 组了,属于 other 组的用户没有权限访问这个文件或者目录。

2. 文件类型和访问权限(事物属性)

而最前面的那段字符,如下图:

在这里插入图片描述

这段字符表示什么意思呢,这段字符的含义如下:

在这里插入图片描述

而文件类型中的表示含义如下:

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

访问者权限的基本表示如下:

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

例如下图的 Test 目录中:

在这里插入图片描述

第1位的 d 就是表示这个文件类型为目录;2-4位为 user 所拥有的权限,分别为读写执行;5-7位为 group 所拥有的权限,也是读写执行;最后三位为 other 的权限,只有读和执行的权限,没有写的权限。

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

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

说明:只有文件的拥有者root 才可以改变文件的权限

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

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

例如我们 touch 一个文件,它的默认权限如下图:

在这里插入图片描述

我们给 user 加上 x 权限:

在这里插入图片描述

此时 test.c 的 user 用户就有了 x 权限;我们再给 other 用户加上 rwx 权限,如下图:

在这里插入图片描述

最后我们再将 group 组的权限全部去掉,如下图:

在这里插入图片描述

修改权限的操作就如上所示,其实我们还有另外一种修改权限的方式,就是使用二进制的方式;

例如 rwx 是三位字母,我们可以使用 01 表示其权限的有无;所以这三位我们可以看作整体,组成一个八进制的数字,来判断其用户权限的有无,例如 r-x,可以用二进制 101 表示,其八进制为 5–x 可以用二进制 001 表示,其八进制为 1rwx 可以用二进制 111 表示,其八进制为 7

所以,在修改权限时,我们也可以使用三位8进制数字的方式修改,例如我们要将 other 的权限全部去掉,而 usergroup 的权限全部加上,如下图:

在这里插入图片描述

再例如我们将所有组的权限都去掉,如图:

在这里插入图片描述

以上就是修改权限的相关内容。

三、默认权限

1. 对文件和目录进行操作需要的权限

在学习默认权限之前,我们需要了解我们对文件或目录进行操作需要的权限。

首先我们先了解一下进入一个目录需要什么样的权限呢?我们逐一尝试,首先我们先保留 读(r ) 权限:

在这里插入图片描述

读( r) 权限不能进入一个目录,然后我们分别只保留 写(w)执行(x) 权限 :

在这里插入图片描述

在这里插入图片描述

我们可以观察到,进入一个目录是只需要 执行(x) 权限的。

然后我们将 dir 的权限放开,在里面新建一些文件,如下:

在这里插入图片描述

然后我们对 dir 读(r )、写(w) 去掉,我们进入这个目录,然后发现查看和新建文件都不可以了,如图:

在这里插入图片描述

原因很简单,因为 dir 这个目录只有 执行(x) 权限,而 ll 指令查看文件属性是需要 读( r) 权限;而新建文件则需要 写(w) 权限,大家可以自己去实现验证一下。

所以总结一下:

  1. 是否允许一个指定用户查看目录的文件列表,需要 读( r) 权限。
  2. 是否允许一个指定用户在当前目录下新建文件或删除文件,需要 写(w) 权限。
  3. 进入一个目录需要 执行(x) 权限。
  4. 一个文件一定是属于一个目录的,一个文件能不能被查看,是由目录的权限决定的。
  5. 一个文件一定是属于一个目录的,一个文件能不能被删除,不是由这个文件本身决定的,是由所属目录与对应账户是否拥有 写(w) 权限决定的!

2. 文件和目录的默认权限

我们要知道,新建文件默认权限为 666 ;新建目录默认权限为 777;但是实际上,我们新建一个文件和目录观察,它们的默认权限并不是我们所说的,如下图:

在这里插入图片描述

如图我们可以观察到,新建的 test 目录默认权限为 776;新建的 test.c 文件默认权限为 664;原因就是创建文件或目录的时候还要受到 umask 权限掩码的影响。umask 功能:查看或修改文件掩码。

我们在命令行输入 umask 即可查看权限掩码,如下图:

在这里插入图片描述

修改权限掩码在 umask 后跟上权限掩码即可:

在这里插入图片描述

那么为什么会存在权限掩码呢?权限掩码是什么呢?它有什么用途呢?下面我们来分析一下。

假设我们不受权限掩码的限制,我们将权限掩码改成 000 ,然后创建一个目录,如图:

在这里插入图片描述

然后我们进入这个目录创建一个文件:

在这里插入图片描述

现在这个文件的默认权限 666,因为我们的权限掩码改成了 000;现在这个文件中,other 组是有 写(w) 的权限,所以就意味着所有人都可以对这个文件进行修改,这就使这个文件变得不安全;所以我们应该把这个文件中 other 组的 写(w) 权限去掉,如下图:

在这里插入图片描述

现在这个文件就变得安全了吗?不是!虽然在这个文件中,other 组没有了 写(w) 的权限,但我们前面讲过,一个文件能不能被删除,不是由这个文件本身决定的,是由所属目录与对应账户是否拥有 写(w) 权限决定的!我们要知道,这个目录对 other 组是放开所有权限的,因为权限掩码是 000,所以就意味着所有人都可以进入这个目录然后删除这个文件,意思就是你不让我看,我就毁掉!这意味着这整个目录都是不安全的!

所以我们回过头来看,为什么要有权限掩码,我们到现在应该可以猜到了,是为了保护目录和文件的安全,具体一点,就是不让 other 组对我们的目录和文件构成威胁。

那么权限掩码是怎么做到的呢?原因是,凡是在权限掩码中出现的权限,最终都要在起始权限中去掉。 例如下图:

在这里插入图片描述

所以权限掩码去掉了 other 组的 写(w) 权限,就有效地保护了目录以及目录内的文件安全。上图中的具体实现就是:最终权限 = 起始权限 & (~umask).

所以这就讲通了新建一个目录的实际默认权限为什么是 775;新建一个文件的实际默认权限为什么是 664 了。

3. 粘滞位

一般而言,我们上面所说的情况都不太会出现,因为不同的账号,是不会在同一个目录下的;但是如果有特殊情况,我们多个账号想互相协同,共享一些数据,但又不希望别人修改我们的数据呢?

这时候就需要我们用到粘滞位了,粘滞位的使用是 chmod +t 目录名 ,粘滞位是只能给目录设置的,使用如下:

在这里插入图片描述

当一个目录被设置为粘滞位,则该目录下的文件只能由

  1. 超级管理员(root)删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Maven解析

目录 Maven的概念 Pom 项目坐标 仓库 Maven环境搭建 安装jdk 配置maven 配置本地仓库地址 配置阿里云 maven 镜像仓库,下载速度更快 在idea中配置maven ​编辑 pom中名词解释 Maven命令 Maven的概念 Maven 是 Apache 软件基金会的一个开源项目,是一个…

prompt工程(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 我准备想办法把这些东西整合到我的ScholarEase项目里。到时候按照分类、按照prompt生成方法列一堆选项,用户自己生成prompt后可以选择在ScholarEase里面聊天,也可以复制到别的地方(比如ChatGPT网页版之类的&a…

数组分割(2023省蓝桥杯)n种讨论 JAVA

目录 1、题目描述:2、前言:3、动态规划(bug):3、递归 剪枝(超时):4、数学(正解): 1、题目描述: 小蓝有一个长度为 N 的数组 A [A0, A1,…, AN−…

Python 密码破解指南:10~14

协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【OpenDocCN 饱和式翻译计划】,采用译后编辑(MTPE)流程来尽可能提升效率。 收割 SB 的人会被 SB 们封神,试图唤醒 SB 的人是 SB 眼中的 SB。——SB 第三定律 十、加…

docker 04(docker 应用部署)

一、部署Mysql 需求: 在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQLServer。 二、部署tomcat 三、部署nginx 四、部署redis

数据结构(2)

冒泡排序: 1.比较相邻的两个元素。如果前一个元素比后一个元素大,则交换两者位置。 2.对每一对相邻元素做相同工作,从第一对元素到最后一对元素,最后的一个元素就是最大的元素。 for(int ia.length-1;i>0;i--){for (int j 0…

c语言练习题28:杨氏矩阵

杨氏矩阵 从左到右增加 从上到下增加 思路&#xff1a; 代码&#xff1a; #include<stdio.h> int findNum(int(*arr)[3], int x, int y, int k) {int i 0;int j y - 1;while (i<x&&j>0) {if (arr[i][j] > k) {j--;}else if (arr[i][j] < k) {i;…

Linux上实现分片压缩及解压分片zip压缩包 - 及zip、unzip命令详解

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

SpringBootWeb案例 Part 2

目录 3. 员工管理 3.1 分页查询 3.1.1 基础分页 3.1.1.1 需求分析 3.1.1.2 接口文档 3.1.1.3 思路分析 3.1.1.4 功能开发 PageBean 3.1.1.5 功能测试 3.1.1.6 前后端联调 3.1.2 分页插件{分页查询-PageHelper插件} 3.1.2.1 介绍 官网&#xff1a; 3.1.2.2 代码实…

04-Numpy基础-利用数组进行数据处理

NumPy数组使你可以将许多种数据处理任务表述为简洁的数组表达式&#xff08;否则需要编 写循环&#xff09;。用数组表达式代替循环的做法&#xff0c;通常被称为矢量化。一般来说&#xff0c;矢量化 数组运算要比等价的纯Python方式快上一两个数量级&#xff08;甚至更多&…

【核磁共振成像】方格化重建

目录 一、缩放比例二、方格化变换的基础三、重建时间四、方格化核 一、缩放比例 对于笛卡尔K空间直线轨迹数据可直接用FFT重建&#xff0c;而如果K空间轨迹的任何部分都是非均匀取样的 可用DFT直接重建&#xff0c;有时称为共轭相位重建&#xff0c;但此法太慢不实用。把数据再…

在VS中使用格式化工具

在VS中使用格式化工具 官网地址: https://clang.llvm.org/ 最后更新时间&#xff1a;2023.8.25 这里以windows为例&#xff0c;使用的环境为VS。 &#xff08;一&#xff09;下载安装LLVM 下载地址: https://github.com/llvm安装&#xff08;自己选择安装路径&#xff09; &…

伦敦金走势图行情值得关注

不知道大家是否了解过伦敦金这个投资品种&#xff0c;或者有否财经网站以及金融终端上看到过它的行情走势图。其实&#xff0c;伦敦金并不是一种实实在在的黄金&#xff0c;而是一种跟踪伦敦现货黄金市场价格走势的黄金保证金交易品种&#xff0c;它每天的行情走势变化&#xf…

安科瑞AMB300系列母线槽红外测温解决方案监测母线槽连接处温度-安科瑞黄安南

一、行业背景 随着当今社会的发展和用电量的急剧上升&#xff0c;现代化工程设施和装备的涌现&#xff0c;封闭式母线即母线槽因方便、节能、载流量大、机械强度高 、安装灵活、寿命长等特点&#xff0c;逐渐取代传统电缆&#xff0c;广泛应用于室内变压站、高层建筑和大型厂房…

基于spring boot校园疫情信息管理系统/疫情管理系统

摘要 随着计算机技术&#xff0c;网络技术的迅猛发展&#xff0c;Internet 的不断普及&#xff0c;网络在各个领域里发挥了越来越重要的作用。特别是随着近年人民生活水平不断提高&#xff0c;校园疫情信息管理系统给学校带来了更大的帮助。 由于当前疫情防控形势复杂&#xff…

2023年国赛 高教社杯数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 最短时…

RTSP/Onvif视频服务器EasyNVR安防视频云服务调用接口录像会被自动删除的问题解决方案

EasyNVR安防视频云服务是基于RTSP/Onvif协议接入的视频平台&#xff0c;可支持将接入的视频流进行全平台、全终端的分发&#xff0c;分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台丰富灵活的视频能力&#xff0c;可应用在智慧校园、智慧工厂、智慧水利等…

使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

文章目录 Nginx日志格式修改配置logstash收集nginx日志引入Redis收集日志写入redis从redis中读取日志 引入FilebeatFilebeat简介Filebeat安装和配置 配置nginx转发ES和kibanaELK设置账号和密码 书接上回&#xff1a;《ELK中Logstash的基本配置和用法》 Nginx日志格式修改 默认…

编写Dockerfile制作自己的镜像并推送到私有仓库

说明&#xff1a;我将用到的私有仓库是Harbor&#xff0c;安装教程参考我的这一篇文章&#xff1a; 安装搭建私有仓库Harbor_Word_Smith_的博客-CSDN博客 一、案例1 1、要求 编写Dockerfile制作Web应用系统nginx镜像&#xff0c;生成镜像nginx:v1.1&#xff0c;并推送其到私…

资深网络工程师的网络排障全过程,太强了!【附工具下载】

下午好&#xff0c;我的网工朋友 我们知道&#xff0c;交换机是局域网中一种很重要的网络设备&#xff0c;它的工作状态与客户端系统的上网状态息息相关。 可是&#xff0c;在实际工作过程中&#xff0c;交换机的状态很容易受到外界的干扰&#xff0c;那样一来局域网中就会出…