【linux】详解linux权限

news2024/12/25 9:34:17

目录

用户

文件属性

更改文件权限

更改文件拥有者

更改文件所属组

用户的权限

文件掩码

粘滞位

总结


基本指令可参考:

【linux】详解linux基本指令-CSDN博客

【linux】详解linux基本指令-CSDN博客

用户

超级用户(root):可以在linux下几乎不受权限约束

普通用户:几乎受所有权限的限制

root用户只有一个,root用户可以创建多个普通用户。创建方法如下:

创建用户:useradd 用户名 

设置用户密码:passwd 用户名

示例:

普通用户的家目录在 /home,可输入如下指令验证

cd ~ 转跳到家目录

cd.. 进入上级目录

ls 查看该目录下的用户

root用户和普通用户可以相互转化

su 用户名 普通用户转root用户需要输入root用户的密码,root用户转普通用户一般不需要输入普通用户的密码

示例

su - 用户名切换身份,并且回到被切换用户的家目录。

示例


文件属性

在linux下一切皆文件。无论是root用户还是普通用户访问文件时被分为三类

文件的拥有者
文件的所属组
其他用户

所属组代表一个用户,介于拥有者和其他用户之间的一个用户

文件类型

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

基本权限

r:读权限,
对普通文件而言,具有读取文件内容的权限;对目录文件来说,具有浏览该目录信息的权限

w:写权限

对普通文件而言,具有修改文件内容的权限;对目录文件来说具有删除移动目录内文件的权限

x:可执行权限

对普通文件而言,具有执行文件的权限;对目录文件来说,具有进入目录的权限
-:无权限

有了上述了解就可以查看文件属性了

输入ll 可查看文件属性。如果没有文件,可输入touch 文件名 创建文件,如果没有目录文件,可输入mkdir 目录文件名 创建目录文件

如下是一个文件的属性

文件权限值的表示方法

符号表示说明符号表示说明
r--可读-w-可写
--x可执行rw-可读可写
-wx可写可执行r-x可读可执行
rwx可读可写可执行---无权限

文件权限八进制表示

权限符号二进制八进制
r--1004
-w-0102
--x0011
rw-1106
r-x1015
-wx0113
rwx1117
---0000

更改文件权限

chmod
功能: 设置文件的访问权限
格式: chmod 选项 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的 拥有者 root 才可以改变文件的权限
  用户表示符+/-=权限字符:
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
用户符号:  
u :拥有者
g :拥有者同组用
o :其它用户
a :所有用户
普通文件示例
目录文件示例

更改文件拥有者

需要root权限更改

chown
功能 :修改文件的拥有者
格式 chown  用户名 文件名
示例

更改文件所属组

需要root权限更改

chgrp
功能 :修改文件或目录的所属组
格式 chgrp 选项 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组
示例

用户的权限

普通用户:

访问文件时,会先去匹配是否是文件的拥有者,不是的话再去匹配是否是文件的所属组,都不是的话会认为该用户为其他用户。

如果该用户同时是拥有者和所属组,那么该用户只会被匹配成拥有者,而不是所属组或两者都是。

完成上述工作后,会看该用户是否有 r w x 三种权限

超级用户:

不受拥有者,所属组,其他用户分类的限制,也不受r w x 三种权限的限制。

只要是文件,超级用户都有:读权限,写权限,可执行权限,更改拥有者权限,更改所属组权限


文件掩码

umask
功能
查看或修改文件掩码
格式 umask 权限值
说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022 ,普通用户默认为0002
新建文件默认权限为 0666  新建目录默认权限为0777
0666 :666对应的是:
拥有者为八进制的6,所属组为八进制的6,其他用户为八进制的6
6对应的权限为可读可写
但实际上所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。
实际创建的出来的文件权限是(二进制计算) :
实际权限 = 默认权限 & (按位与) ( ~ (按位取反) 权限掩码)
经过上述算法, 在权限掩码中出现的过的权限不会在实际权限中出现
权限掩码就像一个漏斗,把文件不想要的权限默认去掉
演示效果:
如果想要让生成的文件的所属组和其他用户无权限该怎么做呢

粘滞位

目录文件的 r w x 三种权限对应如下功能

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
创建用户本质是在home目录下创建了一个目录文件,该目录的权限如下图
这说明 各个用户之间是隔离的
那么各个用户如果要共享资源怎么办呢?方案之一是在根目录下创建一个权限放开的目录,该目录存放公共资源,由于权限开放,每个用户都可以访问公共资源
如下图
那么问题来了
只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写
权限
那么有什么解决方案吗
于是就有了一个特殊的权限, t —— 粘滞位。 t 是特殊的 x 的权限。
如果目录被设为 t 权限,那么该目录下的文件只能被拥有者和root删除
设置方法: chmod +t 文件名
现在还能删吗
其他用户以无权删除

总结

这里小小总结一下
用户分为两种:普通用户,超级用户
文件属性有:拥有者,所属组,其他用户,可读权限,可写权限,可执行权限,文件大小,修改时间,文件名
普通用户受到的限制很大,超级用户几乎不受限制
更改文件权限 : chmod 
更改文件拥有者: chown
更改文件所属组: chgrp
文件掩码: umask
粘滞位: t

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

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

相关文章

【C++算法】BFS解决多源最短路问题相关经典算法题

1.01矩阵 既然本章是BFS解决多源最短路问题,也就是说有若干个起点,那我们就可以暴力一点,直接把多源最短路径问题转化成若干个单源最短路径问题,然后将每次的步数比较一下,取到最短的就是最短路径的结果,这…

安卓部署ffmpeg全平台so并实现命令行调用

安卓 FFmpeg系列 第一章 Ubuntu生成ffmpeg安卓全平台so 第二章 Windows生成ffmpeg安卓全平台so 第三章 生成支持x264的ffmpeg安卓全平台so 第四章 部署ffmpeg安卓全平台so并使用(本章) 文章目录 安卓 FFmpeg系列前言一、添加so1、拷贝ffmpeg到项目2、bu…

华为CE6851-48S6Q-HI升级设备版本及补丁

文章目录 升级前准备工作笔记本和交换机设备配置互联地址启用FTP设备访问FTP设备升级系统版本及补丁 升级前准备工作 使用MobaXterm远程工具连接设备,并作为FTP服务器准备升级所需的版本文件及补丁文件 笔记本和交换机设备配置互联地址 在交换机接口配置IP&#…

文件传输服务应用1——java集成smb2/3实现文件共享方案详细教程和windows共享服务使用配置

在实际项目开发过程中,读取网络资源或者局域网内主机的文件是必要的操作和需求。而FTP(文件传输协议)和SMB(服务器消息块)是两种最为常见的文件传输协议。它们各自在文件传输领域拥有独特的优势和特点,但同…

3DMax

先转换为可编辑多边形 按“1”选择为点,点击目标焊接(CtrlShiftw),然后点击一个顶点拉到另一个定点上; 选择一个面,点击塌陷(CtrlAltC),四点合并为一个点; …

Ai指令-公众号内训课:学会ai指令+公众号的底层逻辑(7节课)

课程目录 第一课:详解公众号的流量机制.mp4 第二课:快速搞定公众号号设化装修.mp4 第三课:一期学员直呼牛X的课程,正确的爆文利用姿势.mp4 第五课:颗粒度级别拆解AI公众号爆文.mp4 第六课:AI提示词进阶技巧课。提示词自动化.mp4 第七课.实操演示提示词撰写工作…

element-ui输入框和多行文字输入框字体不一样解决

element-ui的type"textarea"的字体样式与其他样式不同 <el-input type"textarea"></el-input> <el-input ></el-input>设置&#xff1a; .el-textarea__inner::placeholder {font-family: "Helvetica Neue", Helvetic…

GPIO模拟spi时序点亮数码管

目录 spi.h spi.c main.c 实验效果 spi.h #ifndef __SPI_H__ #define __SPI_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h"//spi初始化 void spi_init(); //spi写入数据 void spi_write(unsigned char data);#endif spi.c #include…

C#编程-.NET Framework使用工具类简化对象之间的属性复制和操作

在C#编程中&#xff0c;对象之间的属性复制和操作是一个常见的需求。为此&#xff0c;.NET Framework提供了多种实用工具库&#xff0c;如AutoMapper、ValueInjecter和ExpressMapper。这些库通过简化代码&#xff0c;提高了开发效率。本文将介绍这些工具库&#xff0c;比较它们…

Html基础笔记

Html超文本标记语言 (HyperText Markup Language) 超文本 指的是网页中可以显示的内容(图片,超链接,视频,) 标记语言 标记–>标签(标注) 例如:买东西的时候—>商品具有标签,看到标签就知道商品的属性(价格,材质,型号等,) 标记语言就是提供了很多的标签,不同的标签…

Android 几个简单的自定义对话框介绍

Android 几个简单的自定义对话框介绍 文章目录 一、前言二、对话框相关内容1、效果2、对话框显示的调用代码&#xff08;1&#xff09;原生对话框代码&#xff1a;&#xff08;2&#xff09;自定义对话框代码&#xff1a; 3、对话框SweetAlertDialog 主要实现代码&#xff1a;4…

在DAYU200上实现OpenHarmony跳转拨号界面

一、简介 日常生活中&#xff0c;打电话是最常见的交流方式之一&#xff0c;那么如何在OpenAtom OpenHarmony&#xff08;简称“OpenHarmony”&#xff09;中进行电话服务相关的开发呢&#xff1f;今天我们可以一起来了解一下如何通过电话服务系统支持的API实现拨打电话的功能…

噱头还是风口?剖析AI短剧出海的未来

导语 |去年以来&#xff0c;低成本、高回报的土味短剧在国内爆火&#xff0c;而这股风也成功地刮到海外。2024 年&#xff0c;越来越多的人把目光投向了拥有庞大市场的国外“蓝海”&#xff0c;当人们还在高谈阔论 Sora 是否颠覆影视行业的时候&#xff0c;AI 已经在出海短剧中…

Linux系统搭建Tale个人博客网站并实现无公网IP访问本地博客

文章目录 前言1. Tale网站搭建1.1 检查本地环境1.2 部署Tale个人博客系统1.3 启动Tale服务1.4 访问博客地址 2. Linux安装Cpolar内网穿透3. 创建Tale博客公网地址4. 使用公网地址访问Tale 前言 今天给大家带来一款基于 Java 语言的轻量级博客开源项目——Tale&#xff0c;Tale…

【嵌入式芯片开发】不使用MicroLib的串口重定向万能预编译配置(适用于ARMCC、AC6等不同的编译器及版本)

【嵌入式芯片开发】不使用MicroLib的串口重定向万能预编译配置&#xff08;适用于ARMCC、AC6等不同的编译器及版本&#xff09; 文章目录 基本的串口重定向接收中断与scanf不能同时工作重定向卡死、低功耗一直唤醒 串口重定向万能预编译配置附录&#xff1a;Cortex-M架构的Sys…

【设计模式深度剖析】【5】【创建型】【原型模式】| 类比群发邮件,加深理解

&#x1f448;️上一篇:建造者模式 | 下一篇:创建型设计模式对比&#x1f449;️ 目录 原型模式(Prototype Pattern)概览定义英文原话直译 3个角色类图1. 抽象原型&#xff08;Prototype&#xff09;角色2. 具体原型&#xff08;Concrete Prototype&#xff09;角色3. 客户…

【cocos creator 】生成六边形地图

想要生成一个六边形组成的地图 完整代码示例 以下是完整的代码示例&#xff0c;包含了注释来解释每一步&#xff1a; cc.Class({extends: cc.Component,properties: {hexPrefab: {default: null,type: cc.Prefab},mapWidth: 10, // 网格的宽度&#xff08;六边形的数量&am…

基于Pytorch框架全连接神经网络对手势图片识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手势识别是计算机视觉领域的一个重要研究方向&#xff0c;具有广泛的应用前景&#xff0c;如人…

react中怎么为props设置默认值

在React中&#xff0c;你可以使用ES6的类属性&#xff08;class properties&#xff09;或者函数组件中的默认参数&#xff08;default parameters&#xff09;来定义props的默认值。 1.类组件中定义默认props 对于类组件&#xff0c;你可以在组件内部使用defaultProps属性来…

基于Java的推箱子游戏设计与实现(论文 + 源码)

【免费】关于基于JAVA的推箱子游戏.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89325018 基于Java的推箱子游戏设计与实现 摘 要 社会在进步&#xff0c;人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。…