【Linux】一文掌握Linux权限

news2024/9/23 3:31:00

环境:centos7,腾讯云服务器

Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹


前言

权限 一词相信大家都不陌生,与我们的生活密切相关。小区里的门禁制度、公司里的管理制度、学校里的校规规定、甚至是社交平台上的一些设置等。可以说我们人类是被生活中的种种“权限”所“约束”着。

在Linux中同样存在着权限的概念,最主要分为:文件权限以及目录权限,所“约束”的对象则为各种用户。

权限是什么?

简单来说,权限就是一件事情是否允许被“谁”来做。这里的“”是用来限制的,而人所访问的对象可能天然没有某种“属性

就比如说,我们不可能在爱奇艺里打英雄联盟、也不可能在英雄联盟里观看电影,因此我们可以这样认为:权限=人+事物属性

Linux中的用户分类

Linux中主要分为两类用户:超级用户(root)、普通用户
超级用户(root):权限非常高、几乎可以做任何事情、有且仅有一个。
普通用户:由超级用户创建、可以有很多个,在涉及到某些操作时会权限不足。

普通用户的创建以及删除

adduser 用户:增加用户
userdel -r 用户:删除用户并删除该用户所在的家目录
passwd 用户:为用户增加密码

用户的切换

su 用户切换到指定用户(root下可以随意切换,且不需要输入用户密码)另外,假如 没有指定用户,则会切换到root

su - 切换到超级用户家目录(类似于重新登陆),并显示最近登录信息

Linux的文件属性

文件的类型与权限

文件的权限分为以下三种:可读(r)、可写(w)、可执行(x)

Linux不用文件的后缀来区分文件类型,而是用文件属性中第一列的第一个字符来区分文件类型。

Linux下的文件类型主要有以下几种:

-:普通文件(文本、可执行、归档文件(压缩包)等)
d:目录
b:块设备(磁盘)
c:字符设备(键盘、显示器)
l:链接文件
s:网络socket文件
p:管道文件

目前最常见的是前两种,即普通文件以及目录,其余的后面遇到再细说。

文件后缀存在的意义

想用就用,方便人来看的
看作文件名的一部分
Linux虽不区分,但一些软件会区分,比如gcc/g++等

角色划分

Linux中对该用户所处的角色也进行了划分,主要分为以下三种:
文件拥有者:顾名思义即拥有该文件的人
文件所属组:文件所属的组群、一个组里可以有好多个用户
文件的Other:除了以上两种角色之外的所有人

分别对应文件属性中的以下位置:

注意:超级用户不受权限的约束,就比如这里的test.txt文件,所属组以及拥有者都是qidunyan,root对于该文件来说就属于Other,权限只有可读权限,但是root一样可以进行修改里面的内容!

文件角色权限的修改

我们可以使用chmod命令来修改文件的权限,但是只有文件的拥有者,以及root可以进行修改该文件。
chmod 用户符号 +/- 权限 目标文件
用户符号:
g:所属组
o:Other
u:拥有者
+:增加权限
-:减少权限
权限:
r:可读
w:可写
x:可执行

当然,我们除了用此方法外,还可以使用八进制数字进行权限修改,1表示有该权限,0表示无该权限。如下:

文件的拥有者以及所属组的更改

对于一个文件的拥有者以及所属组,我们也可以用chown以及chgrp进行更改。当然,作为普通用户,我们的权限是不足以对文件进行拥有者以及所属组的修改,所以我们需要进行切换为root,或者用sudo对指令进行提权。
chown 用户名 目标文件 :更改文件的拥有者
chgrp 用户名 目标文件:更改文件所属组
-R:进行递归式更改

file命令

file 目标文件:直接识别文件类型
-c: 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z:尝试去解读压缩文件的内容

目录权限

我们可以很清晰的知道,一个普通文件的rwx,r代表可以查看该文件,w表示可以对该文件的内容进行修改,x表示该文件可以被执行,那么对于一个目录来说,rwx又意味着什么呢?
r(可读):可以查看该目录下的内容(即该目录下的所有文件以及文件属性)
w(可写):可以在该目录下创建新的文件或目录
x(可执行):可以进入该目录
-:无权限
(当然,这些权限限制的对象为普通用户,root无所畏惧)

文件的默认权限

在创建一个新的普通文件或目录时,创建出来的文件会自带默认权限。普通文件的默认权限为:664,目录文件的默认权限为:775。并且我们发现,Other的默认权限都不具有w,这主要是为了保护文件的安全性

默认权限是如何来的?

其实默认权限只是系统给我们看到的,不管是普通文件还是目录文件,其实都具有起始权限,也就是最开始的权限,普通文件的起始权限为:666,目录文件的起始权限为:777,而系统为了更好的控制文件权限,系统会自带默认的权限掩码,我们可以用umask进行查看,umask 0八进制数 进行修改默认的权限掩码。
默认权限=起始权限&(~umask)

粘滞位

先看以下这种情况,就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

换句话来说,当一个文件被所有人共享时,用户会收到权限的约束,但是拦不住用户进行删文件,所以,为了制裁这种不合理的现象,粘滞位就出来了。

chmod +t 目标目录:给目标目录增加粘滞位

-t:去除粘滞位

粘滞位只能给目录添加,一般给共享目录添加,防止乱删文件


end

生活原本沉闷,但跑起来就会有风!🌹

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

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

相关文章

python 手机相机传感器信息计算

传感器信息计算 输入传感器尺寸以上已红米12pro为例 输入传感器尺寸 1/1.4英寸 0.7142857 输入像素2亿 200000000 得到以下结果 和宣传中的传感器信息一致 附源码 import sympyclass CMosInfo(object):"""传感器信息计算"""def __init__(…

C 程序设计教程(19)—— 数组和指针(二):字符数组与字符串

C 程序设计教程(19)—— 数组和指针(二):字符数组与字符串 该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用…

word实用操作:几个关于录入和排版的小妙招

对于职场人来说,工作中使用Word早已成了习惯。而如何提高Word的技术,那简直是职场人一生都需要研究探索的课题。因此,今天小编将为大家分享几个实用的Word小技巧,这些技巧貌似不起眼,但是学会后,可以大大提…

如何查linux服务器的带宽占用?哪些进程占用带宽?

前言操作系统: Linux操作环境: Centos7 / ubuntulinux查看服务器带宽具体方法   一、使用speedtest-cli命令查看下载和上传最大流量值因为命令是python的,所以需要先下载一个python,用pip下载次命令;123yum -y insta…

七个 Vue 项目用得上的 JavaScript 库分享

文章目录前言一、vueuse二、vue-js-modal三、vue-wait四、good-table五、vue-notification六、tree select七、egjs-infinite grid总结前言 借助开源库加速 Vue 项目的开发进度是现代前端开发比较常见的方式,平常收集一些 JavaScript 库介绍,在遇到需要的…

上古神兵,先天至宝,Win11平台安装和配置NeoVim0.8.2编辑器搭建Python3开发环境(2023最新攻略)

毫无疑问,我们生活在编辑器的最好年代,Vim是仅在Vi之下的神级编辑器,而脱胎于Vim的NeoVim则是这个时代最好的编辑器,没有之一。异步支持、更好的内存管理、更快的渲染速度、更多的编辑命令,是大神Thiago de Arruda对开…

第九层(5):STL之stack

文章目录前情回顾stack概念stack容器需要注意的地方stack类内的构造函数stack类内的赋值操作stack类内的插入stack类内的删除stack类内的访问stack类内的大小操作下一座石碑🎉welcome🎉 ✒️博主介绍:一名大一的智能制造专业学生,…

Knowledge-based-BERT(三)

多种预训练任务解决NLP处理SMILES的多种弊端,代码:Knowledge-based-BERT,原文:Knowledge-based BERT: a method to extract molecular features like computational chemists,代码解析继续downstream_task。模型框架如…

HTML中的div和span标签

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>HTML中的div和span标签</title> </head> <body> <!-- 1、div和span是什么&#xff1f;有什么用…

【linux】文件操作(IO)详述

文件操作一、引入二、系统调用接口2.1 open与close2.2 write2.3 read三、文件描述符3.1 分配规则四、重定向4.1 输出重定向4.2 追加重定向4.3 输入重定向4.4 独立性五、缓冲区5.1 缓冲区刷新策略5.2 缓冲区位置5.3 现象解释六、文件系统6.1 文件系统分区6.1.1 分区图6.1.2 介绍…

实时推荐业务介绍 grpc接口对接

5.1 实时推荐业务介绍 学习目标 目标 无应用 无 5.1.1 实时推荐逻辑 逻辑流程 1、后端发送推荐请求&#xff0c;实时推荐系统拿到请求参数 grpc对接2、根据用户进行ABTest分流 ABTest实验中心&#xff0c;用于进行分流任务&#xff0c;方便测试调整不同的模型上线3、推荐中心…

k8s之部署有状态应用

写在前面 本文一起看下k8s对于有状态应用部署提供的解决方案。 1&#xff1a;有状态应用和无状态应用 如果是一个应用每次重启时依赖环境都能和第一次启动时的完全一致&#xff0c;则就可以称这类应用是无状态应用用&#xff0c;反之&#xff0c;就是有状态应用&#xff0c;如…

自动写代码的AI工具,已经支持 VsCode 插件安装使用

自动写代码的AI工具&#xff0c;已经支持 VsCode 插件安装使用&#xff0c;它的功能并不是「代码补全」&#xff0c;而是「代码生成」。 之前有个比较火的 GitHub Copilot&#xff0c;但是这是商业产品&#xff0c;并且没有开源&#xff0c;现在又被告了。 GitHub Copilot 面…

SQLSERVER 事务日志的 LSN 到底是什么?

一&#xff1a;背景 1. 讲故事 大家都知道数据库应用程序 它天生需要围绕着数据文件打转&#xff0c;诸如包含数据的 .mdf&#xff0c;事务日志的 .ldf&#xff0c;很多时候深入了解这两类文件的合成原理&#xff0c;差不多对数据库就能理解一半了&#xff0c;关于 .mdf 的合…

代码随想录--二叉树章节总结 Part II

代码随想录–二叉树章节总结 Part II 1.Leetcode222 求完全二叉树结点的个数 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达…

Python机器学习:特征变换

&#x1f315; 特征变换 特征变换主要就是针对一个特征&#xff0c;使用合适的方法&#xff0c;对数据的分布、尺度等进行变换&#xff0c;以满足建模时对数据的需求。 特征变换可分为数据的数据的无量纲化处理和数据特征变换。 &#x1f317; 数据的无量纲化处理 常用处理…

22.0:Codejock Suite Pro for ActiveX COM:Crack

从 Visual Basic 5.0 和 6.0 开始一直到当前版本的 Visual Studio 的大多数 ActiveX 容器。与 Visual Studio 无缝集成并包含我们所有 ActiveX COM 产品的评估版本。评估版不提供 OCX 文件的 Unicode 版本。 创建包含一整套高度可定制的用户界面组件的专业应用程序&#xff0c;…

Flink-FinkSQL基本操作(Table API、动态表、事件窗口、分组聚合开窗查询、联结查询)

11 Table API和SQL 11.1 快速上手 引入TableAPI的依赖 桥接器 <dependency><groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge_${scala.binary.version}</artifactId><version>${flink.version}</vers…

12、常用插件

文章目录12、常用插件推荐1&#xff1a;Alibaba Java Coding Guidelines推荐2&#xff1a;jclasslib bytecode viewer推荐3&#xff1a;Translation推荐4&#xff1a;GenerateAllSetter推荐5&#xff1a;Rainbow Brackets推荐6&#xff1a;CodeGlance Pro推荐7&#xff1a;Stat…

7.bWAPP -- INSECURE DIRECT OBJECT REFERENCES

7.bWAPP – INSECURE DIRECT OBJECT REFERENCES 0x01、Insecure DOR (Change Secret) 同 XSS - Stored (Change Secret) Low 仔细观察页面, 发现隐藏一个input标签, 作用是输入用户名, 并且配合提交的修改密码, 完成修改用户密码的操作: 这里就可以利用该用户名input标签达…