Linux权限管理

目录

前言

1. Linux权限的概念

2. Linux权限管理

2.1 修改权限

 拓展

 2.2 修改拥有者

 2.3 修改所属组

 3. 文件类型

 3.1 file指令

4. 权限掩码

umask指令

 5.目录权限

 6. 粘滞位

总结


前言

        Linux作为一款开源操作系统,其权限管理机制是非常重要的一部分。熟练掌握Linux权限,可以帮助我们更好地管理文件和目录,保障系统的安全性和稳定性。

在这里插入图片描述

1. Linux权限的概念

Linux中分为两种用户:

  • 超级用户(root)
  • 普通用户

超级用户可以再Linux系统下做任何事情,不受限制 

普通用户在Linux下是受限制的,Linux权限的管理也就是对普通用户权限的管理

 比如:

用户test(普通用户)访问www(普通用户)的文件夹被拒绝访问

 root账户不受任何限制直接进入:

 所以root用户的密码非常重要,不要泄露!!

 命令:su +【用户名】

 功能:切换用户

从root用户切换到普通用户,则使用 su+user

从普通用户切换到root用户则使用 su+root(root可以省略)

 普通用户执行sudo -ls,在正常的情况下:

 没有设置权限的情况下无法执行

sudo + 指令 :以root身份运行

 执行显示test(用户)不再sudoers文件里

 解释:

sudoers文件相当于一个白名单,在名单里的用户才可以使用sudo

 注意:

sudoers文件拥有者是root(超级管理员)

普通用户无法访问修改

2. Linux权限管理

 文件访问者分类:

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

 使用 “ ls -l ”指令可以查看文件的详细信息

 这些信息都代表着什么意思?

 权限字符表示:

 进制数表示:

2.1 修改权限

 语法:chmod +【参数】 + 文件
 功能: 设置文件访问权限
 常用选项:

  •  字符修改

 比如:

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

用户符号: 

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

去除拥有者的r权限

 

 增加拥有者可读可执行权限

 去除拥有者可执行权限,去除所属组可写权限,去除其他人可读权限

 

给所有人写权限:

  •   进制数修改权限

 3位进制数:

  1. 第1位代表拥有者权限
  2. 第2位是所属组权限
  3. 第3位是其他用户权限

 

 拓展

 上述的指令是对文件的权限进行修改,私下大家可以进行权限验证

Linux执行文件:

  • 有可执行权限
  • 是可执行文件

 注意:

当拥有者和和所属组一样,而拥有者没有可执行权限,拥有者将无法执行文件:

 当拥有者和和所属组一样时,权限判断时有优先次序,系统在判断时,拥有者没有可执行权限就直接禁止,不会再进行后续判断

如果是root账户,即使没有读写执行权限依然可以操作:

root之下没有权限

 2.2 修改拥有者

 语法:chown +【用户】 + 文件
 功能: 修改文件拥有者

 正常情况下,普通用户无法私自将自己所属文件修改为其他用户所属:

 需要以root身份执行:

其他用户使用sudo指令也可以修改

 2.3 修改所属组

  语法:chgrp +【用户组】 + 文件
  功能: 修改文件所属组

常用选项:

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

 同时修改拥有者和所属组:

 3. 文件类型

 Linux的文件类型不通过后缀区分(不代表Linux不用后缀)

常见文件类型:

  •  -开头: 普通文件,文本、源代码、图片、视频、库、可执行等
  • d开头: 目录文件
  • b开头: 块设备文件 ->磁盘
  • c开头: char,字符设备文件 ->键盘显示器
  • l开头: 链接文件
  • p开头: 管道文件
  • s开头: socket文件

 3.1 file指令

 功能:辨识文件类型。
 语法:file 【选项】 文件或目录...
 常用选项:

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

 比如:

4. 权限掩码

权限顶格写权限就是777(所有人都有rwx权限)

 那为什么每次创建目录默认权限不是777?每次创建的文件默认权限不是666?

 

这里就要引入权限掩码的概念了

umask指令

功能:查看或修改文件掩码

  •  查看权限掩码:
umask

 我的设备上的权限掩码是002

 我创建的文件默认权限是664

创建文件时:从起始权限中,去掉umask中出现的权限

 666二进制:110 110 110

 002二进制:000 000 010

 去除002:110 110 100 ->664

  • 修改权限掩码

语法:umask 【权限掩码】

 权限掩码是怎么去除的?

去除:不是二进制相减

 计算规则:
 起始权限& (~按位取反umask)=最终权限(默认)

 比如:

666:
110 110 110
000 000 011->按位取反:111 111 100

110 110 110
111 111 100 &
——————————
110 110 100 ->664


777:
111 111 111
111 111 100 &
——————————
111 111 100 ->774

 

 5.目录权限

     前边我们提到的例子都是对文件的限制,那权限对目录有什么影响呢?

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中

  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容

  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

 注意:

 没有w(写)权限,仍然可以修改文件权限(可能有些版本操作系统里不允许),但不允许移动和修改文件名

 6. 粘滞位

  那么现在问题来了,只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不管这个用户是否有这个文件的写权限

 这样似乎很不复合常理,我的文件,凭什么你可以删?

 也就是说:

 一个文件能否被删除,并不取决于文件本身,取决于文件所在的目录,目录拥有者是否有w权限

 一般情况下普通用户无法进入到其他用户目录下,更无法创建文件

 如果不能将文件创建到其他用户的文件下,那用户之间如何进行数据交换呢?

 为了解决这个问题,Linux中有一个特殊的目录:

特殊目录(tmp,拥有者root)

 

来实现文件共享,other权限:rwx

 tmp目录允许所有用户将临时文件创建在该目录。

那么问题来了:

用户都有W权限,那都可以删除文件,那如何防止自己的文件被其他用户删除?

把所有的用户都去除w权限不行,因为去除other的w权限,其他用户无法删除的同时,也无法创建文件。

为了解决这个问题,Linux给其他用户新增一个权限:t(粘滞位)

 粘滞位:给目录中的other设置一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定:该目录里的文件,只有root和文件(或目录)的拥有者有权利进行删除。


总结

       掌握Linux权限管理,可以更好地管理文件和目录,提高系统的安全性和稳定性,上述的内容,大家可以私下实验一下,亲身体验才能更有感触。好了,以上便是本期全部内容。最后,感谢阅读!

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

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

相关文章

excel中vlookup用法

excel中vlookup用法 用法示例 参数说明 参数1:E1用于匹配的字段 参数2:E1:F4,匹配表格范围 参数3:要取的字段属于匹配表格范围的第几列 数据4:精确匹配

RequestContextHolder详解

最近遇到的问题是在service获取request和response,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了SpringMVC提供的RequestContextHolder遂去分析一番,并借此对SpringMVC的结构深入了解一下,后面会再发文章详细分析源码 1.Reque…

守护 C 盘,Python 相关库设置

前言 pip 安装依赖和 conda 创建环境有多方便,那 C 盘就塞得就有多满。以前我不管使用什么工具,最多就设置个安装位置,其他都是默认。直到最近 C 盘飙红了,我去盘符里的 AppData 里一看,pip 的缓存和 conda 以前创建的…

物联网AI MicroPython学习之语法 GPIO输入输出模块

学物联网,来万物简单IoT物联网!! GPIO 介绍 模块功能: GPIO通用输入输出。 接口说明 GPIO - 构建GPIO对象 函数原型:Pin(port, dir , pull)参数说明: 参数类型必选参数?说明portintY对应开发板的引脚号…

Debezium-Embedded 实时监控MySQL数据变更

1.Debezium-Embedded 简介 Debezium连接器的操作通常是将它们部署到Kafka Connect服务,并配置一个或多个连接器来监控上游数据库,并为它们在上游数据库中看到的所有更改生成数据更改事件。这些数据更改事件被写入Kafka,在那里它们可以被许多不…

JavaEE进阶学习:Spring 的创建和使用

Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能: 将对象存储到容器(Spring)中从容器中将对象取出来 接下来使用 Maven 方式来创建一个 Spring 项目,创建 Spring 项目和 Servlet 类似&a…

淘宝客APP源码/社交电商自营商城源码/前端基于Uniapp开发

淘宝客APP源码,前端基于Uniapp开发的社交电商自营商城源码。Thinkphp的后台,不是很标准,感兴趣的可以自行研究。 商城功能 1、首页基础装修;2、丰富选品库;3、淘口令解析;4、支持京东;5、支持…

免费IDEA插件分享:Apipost-Helper

今天给大家推荐一款IDEA插件:Apipost-Helper-2.0,写完代码IDEA内一键生成API文档,无需安装、打开任何其他软件;写完代码IDEA内一键调试,无需安装、打开任何其他软件;生成API目录树,双击即可快速…

day18_多线程

今日内容 零、 复习昨日 一、作业 二、线程安全的集合 三、死锁 四、线程通信 五、线程池 零、 复习昨日 见晨考 一、线程安全[重点] 1.0 线程不安全 当前线程的数据被其他线程修改 1.1 线程安全 临界资源:共享资源(同⼀个对象),一次只可以有一个线程操…

cudnn安装

安装地址 cudnn安装地址:https://developer.nvidia.com/rdp/cudnn-download 安装 选择windows版本的下载,我这里选择的这个: 下载之后解压即可。 后续 后续:第一步 把cudnn的bin,include,lib三个文件…

k8s之Helm

理论: 什么是 He lm 在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包…

树莓派连接NOKOV接收动作捕捉数据:通过SDK进行

NOKOV度量动作捕捉系统支持通过SDK与树莓派通信,将动作捕捉数据实时传输给树莓派。 一、形影软件设置 1、首先打开形影动捕软件,加载一段后处理数据。这里选择了一段小车飞机的协同数据。 在这个数据里面可以看到,整个场景里面有两个刚体&a…

JS-项目实战-代码优化-事件动态绑定

1、鼠标悬浮和离开事件.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格…

零代码数字孪生设计平台的功能特点

在当今数字化的时代,企业的转型已经成为必然的趋势。而在这个过程中,3D数字孪生无代码编辑工具正成为企业实现数字化转型的新价值点。客户可以无需任何专业知识和专业软件的支持,仅仅通过互联网和浏览器即可根据购买要求对自己的产品/设备/园…

RGB转Bayer,一个小数点引发的血案

前几天写了一个RGB数据转Bayer格式的函数,经过测试功能正常。后来把这个函数用到一个数据库构建中,结果数据库出来的结果一直是一张黑图,追查了好几个小时,总算把这只虫子找出来了,原来是一个整数后面的小数点作祟。 …

Flume(一)【Flume 概述】

前言 今天实在不知道学点什么好了,早上学了3个多小时的 Flink ,整天只学一门技术是很容易丧失兴趣的。那就学点新的东西 Flume,虽然 Kafka 还没学完,但是大数据生态圈的基础组件也基本就剩这倆了。 Flume 概述 生产环境中的数据一…

最佳实践-使用Github Actions来构建跨平台容器镜像

概述 GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。 GitHub Actions 不仅仅是 DevOps,还允许您在存…

【评论送书】十本架构师成长和软件架构技术相关的好书(可以任选)

正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 参与规则 本次送书1~5本参与方式:关注博主、点赞、收藏、评论(从评论区…

asp.net core mvc之 过滤器

过滤器允许我们在Action执行之前和执行之后去执行一下业务代码 一、过滤器的作用域 1、全局过滤器, 在Startup.cs文件中注册 2、控制器过滤器, 在控制器类上面使用标注 3、action过滤器 二、全局过滤器使用 1、在 core 目录,添加 TestA…