Linux权限管理

文章目录

  • linux权限管理
    • 1.Linux权限的概念
    • 2.Linux权限管理
      • 2.1 文件访问者的分类(人)
      • 2.2 文件类型和访问权限(事物属性)
        • 2.2.1 文件类型
        • 2.2.2 基本权限
      • 2.3文件权限值的表示方法
        • 2.3.1 字符表示方法
        • 2.3.2 八进制数值表示方法
      • 2.4 文件访问权限的相关设置方法
        • 2.4.1 chmod
        • 2.4.2 chown
        • 2.4.3 chgrp
        • 2.4.4 umask
        • 2.4.5 file指令
    • 3.目录的权限
      • 粘滞位
    • 4. 关于权限的总结

linux权限管理

1.Linux权限的概念

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

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

命令:su [用户名]

功能:切换用户

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

在这里插入图片描述

2.Linux权限管理

2.1 文件访问者的分类(人)

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

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

在这里插入图片描述

在这里插入图片描述

2.2.1 文件类型
  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件
2.2.2 基本权限
  • 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “—”表示不具有该项权限

2.3文件权限值的表示方法

2.3.1 字符表示方法
Linux表示说明Linux表示说明
r - -只读- w -仅可写
- - x仅可执行rw -可读可写
- wx可写和可执行r - x可读可执行
rwx可读可写可执行- - -无权限
2.3.2 八进制数值表示方法
权限符号(读写执行)八进制二进制
r4100
w2010
x1001
rw6110
rx5101
wx3011
rwx7111
- - -0000

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

2.4.1 chmod

**功能:**设置文件的访问权限

**格式:**chmod [参数] 权限 文件名

常用选项:

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

*chmod 命令权限值的格式

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

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

在这里插入图片描述

也可以:

在这里插入图片描述

②三位8进制数字

从上面的表格可以知道,6代表rw权限,4代表r权限

用8进制修改权限可以一步到位:

chmod 664 abc.txt

在这里插入图片描述

2.4.2 chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

  • user : 新的文件拥有者的使用者ID (用户名)
  • group : 新的文件拥有者的使用者组(group)
  • -c(change) : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h : 修复符号链接
  • -v(version) : 显示详细的处理信息
  • -R(recursive) : 处理指定目录以及其子目录下的所有文件
  • –help : 显示辅助说明
  • –version : 显示版本

举例:

在这里插入图片描述

如果一个文件夹下有文件,则需要需要使用参数 -R(如果不加R会有一些小毛病)

这是最开始的目录权限:

在这里插入图片描述

不加R进行修改用户:

在这里插入图片描述

可以看到虽然目录用户改了,但是里面的目录用户所属者并没有修改

此时,加R进行尝试:

在这里插入图片描述

此时可以发现,目录中的所有文件用户者全都进行了更改。

2.4.3 chgrp

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

  • -c 或 --changes:效果类似"-v"参数,但仅回报更改的部分。
  • -f 或 --quiet 或 --silent:不显示错误信息。
  • -h 或 --no-dereference:只对符号连接的文件作修改,而不改动其他任何相关文件。
  • -R 或 --recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
  • -v 或 --verbose:显示指令执行过程。
  • –help:在线帮助。
  • –reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
  • –version:显示版本信息。

举例:

承接上面的dir文件进行演示

在这里插入图片描述

2.4.4 umask

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

新建文件夹默认权限 = 0666

新建目录默认权限 = 0777

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

格式:umask 权限值

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

在这里插入图片描述

当前默认用户确实是0002,创建的文件权限为rwxrwxr-x,转换为8进制便为775(rwx的8进制为7,rx的8进制为5)(参照上面的表)。

由于默认权限为777,当前用户mask值002,则777 - 002 = 775。

这也就解释了为何创建的默认目录权限了。

2.4.5 file指令

功能说明:辨识文件类型。

语法:file [选项] 文件或目录…

常用选项

  • -b  列出辨识结果时,不显示文件名称。
  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  • -L  直接显示符号连接所指向的文件的类别。
  • -m<魔法数字文件>  指定魔法数字文件。
  • -v  显示版本信息。
  • -z  尝试去解读压缩文件的内容。
  • [文件或目录…] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

举例:

在这里插入图片描述

3.目录的权限

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

于是, 问题来了~~

换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉?

为了解决这个不科学的问题, Linux引入了粘滞位的概念

粘滞位

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 919 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

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

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

4. 关于权限的总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CV领域 交叉注意力(Cross Attention)中QKV的含义理解

交叉注意力公式&#xff1a; 注意力的输入&#xff1a; &#xff08;1&#xff09;KV&#xff1a;图像的全局特征 &#xff08;2&#xff09;Q&#xff1a;告诉attention需要关注哪些重要特征 公式计算过程理解&#xff1a; &#xff08;1&#xff09;&#xff1a;Q和K相乘…

后疫情时代CS保研沉思录暨2023年个人保研经验贴

个人情况 正如古话所说&#xff0c;最适合你的才是最好的。因此这里先贴上个人基本情况&#xff0c;用作参考。 如果你的个人情况与我相近&#xff0c;则有更强的参考作用。如果情况相差较大&#xff0c;也可以姑且引为例子来研究。 学校层次&#xff1a;中流至末流211 专业…

C之易错注意点转义字符,sizeof,scanf,printf

目录 前言 一&#xff1a;转义字符 1.转义字符顾名思义就是转换原来意思的字符 2.常见的转义字符 1.特殊\b 2. 特殊\ddd和\xdd 3.转义字符常错点----计算字符串长度 注意 &#xff1a; 如果出现\890,\921这些的不是属于\ddd类型的&#xff0c;&#xff0c;不是一个字符…

把本地文件上传到HDFS上操作步骤

因为条件有限&#xff0c;我这里以虚拟机centos为例 实验条件&#xff1a;我在虚拟机上创建了三台节点&#xff0c;部署了hadoop&#xff0c;把笔记本上的数据上传到hdfs中 数据打包上传到虚拟机节点上 采用的是rz命令&#xff0c;可以帮我们上传数据 没有的话可以使用命令安装…

那个男人开发了一个多账号浏览器

核心价值1&#xff1a;实现了一个浏览器同时登录多个账号&#xff0c;标签页之间信息不共享核心价值2:聚焦于账号管理&#xff0c;所有需要登录多账号都用这个浏览器减轻了找入口的烦恼核心价值3:赏心悦目核心价值4:悬浮功能核心价值5:PC和手机模式一键切换核心价值6:不同于浏览…

Redis 全景图(1)--- 关于 Redis 的6大模块

这是我第一次尝试以长文的形式写一篇Redis的总结文章。这篇文章我想写很久了&#xff0c;只是一直碍于我对Redis的掌握没有那么的好&#xff0c;因此迟迟未动笔。这几天&#xff0c;我一直在看各种不同类型的Redis文章&#xff0c;通过阅读这些文章&#xff0c;引发了我对于Red…

DolphinScheduler on k8s 云原生部署实践

文章目录 前言利用Kubernetes技术云原生平台初始化迁移基于Argo CD添加GitOpsDolphinScheduler 在 k8s 上的服务自愈可观测性集成服务网格云原生工作流调度从HDFS升级到S3文件技术总结 前言 DolphinScheduler 的高效云原生部署模式&#xff0c;比原始部署模式节省了95%以上的人…

【论文通读】AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation

AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation 前言AbstractMotivationFrameworkConversable AgentsConversation Programming ApplicationA1: Math Problem SolvingA2: Retrieval-Augmented Code Generation and Question AnsweringA3: Decision…

相机标定学习记录

相机标定是计算机视觉和机器视觉领域中的一项基本技术&#xff0c;它的主要目的是通过获取相机的内部参数&#xff08;内参&#xff09;和外部参数&#xff08;外参&#xff09;&#xff0c;以及镜头畸变参数&#xff0c;建立起现实世界中的点与相机成像平面上对应像素点之间准…

深度学习算法概念介绍

前言 深度学习算法是一类基于人工神经网络的机器学习方法&#xff0c;其核心思想是通过多层次的非线性变换&#xff0c;从数据中学习表示层次特征&#xff0c;从而实现对复杂模式的建模和学习。深度学习算法在图像识别、语音识别、自然语言处理等领域取得了巨大的成功&#xf…

【STM32 HAL库SPI/QSPI协议学习,基于外部Flash读取。】

1、SPI协议 简介 SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface)&#xff0c;即串行外围设备接口&#xff0c;是 一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间&#xff0c;要求通讯速率 较高的场合。 SPI 物理层 SPI 通讯…

Nginx(Docker 安装的nginx)配置域名SSL证书

1.首先确保Linux环境上已经安装了docker&#xff08;可参考Linux安装Docker-CSDN博客&#xff09; 2.通过docker 安装nginx&#xff08;可参考Linux 环境安装Nginx—源码和Dokcer两种安装方式-CSDN博客&#xff09; 3.安装SSL证书 3.1 在宿主机中创建证书目录并上传证书&…

【数据结构与算法篇】动态顺序表及相关OJ算法题

【数据结构与算法篇】动态顺序表及相关OJ算法题 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;数据结构与算法&#x1f345; 目录 【数据结构与算法篇】动态顺序表及相关OJ算法题 1. 动态顺序表的实现 1.1 SeqList.h 头文件声明 1.…

基于LSB(最低有效位)的图像水印算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

php将网页用wkhtmltoimage内容生成为图片

php架构ThinkPHP6 1. 安装 knp-snappy架构 composer require knplabs/knp-snappy use Knp\Snappy\Image; use Illuminate\Support\Facades\Storage;// 生成图片 /user/local/bin/wkhtmltoimage为你的wkhtmltoimage的位置。 $snappy new Image(/usr/local/bin/wkhtmltoimage…

智慧城市数字孪生,综合治理一屏统览

现代城市作为一个复杂系统&#xff0c;牵一发而动全身&#xff0c;城市化进程中产生新的矛盾和社会问题都会影响整个城市系统的正常运转。智慧城市是应对这些问题的策略之一。城市工作要树立系统思维&#xff0c;从构成城市诸多要素、结构、功能等方面入手&#xff0c;系统推进…

算法学习——LeetCode力扣单调栈篇

算法学习——LeetCode力扣单调栈篇 739. 每日温度 739. 每日温度 - 力扣&#xff08;LeetCode&#xff09; 描述 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个…

关系型数据库mysql(7)sql高级语句①

目录 一.MySQL常用查询 1.按关键字&#xff08;字段&#xff09;进行升降排序 按分数排序 &#xff08;默认为升序&#xff09; 按分数升序显示 按分数降序显示 根据条件进行排序&#xff08;加上where&#xff09; 根据多个字段进行排序 ​编辑 2.用或&#xff08;or&…

ESP8266 控制 LED 亮灭

一、引脚对应 二、按键控制 LED 亮灭 2.1样例1 #include <ESP8266WiFi.h>const int ledPin D2; // LED 连接到 D2 引脚 const int keyPin D4; // 按键连接到 D4 引脚volatile bool flag false; // 记录 LED 状态的标志// 外部中断处理函数 ICACHE_RAM_ATTR void han…

重新温习广软puthon爬虫技术。

下面是我不断试错的一个过程&#xff0c;好多知识点全忘记了&#xff0c;只能不断调实例&#xff0c;不断优化&#xff0c;重构&#xff0c;实现自己的需求。下面是我的运行截图。还是导包的问题。 个人感觉关键的还是这几部&#xff0c;被划了下划线的&#xff0c;存在问题&a…