一章让你明白什么是权限

news2024/11/28 5:36:41

目录

🌏什么是Linux 权限?

🌏文件:

🌏目录: 

🌏查看文件的权限 

🌏权限针对的三类用户:

🌏ls -l 命令显示的意义

🌏修改文件的属性和权限

🌏隐藏权限

🌏默认权限与隐藏权限

🌏默认权限:umask

🌏隐藏权限

🪐三、特殊权限和Facl

🪐SUID:

🪐SGID: 

🪐Sticky (BIT):

🪐FACL  


什么是Linux 权限?

在Linux系统中,权限用于控制对文件和目录的访问和操作。每个文件和目录都有一个与之关联的权限设置

每个部分都有三个权限:读取(r)、写入(w)和执行(x)

不同文件类型的有意义:针对普通文本文件和目录,相同的写法,但代表的意义不同

文件:

r:可读,可以使用类似cat等命令查看文件内容;
w:可写,可以编辑或删除此文件;
x: 可执行,executable,可以命令提示符下当作命令提交给内核运行
r 单独存在,可查看文件内容
w 单独存在,看不到文件内容,但是可以强制修改文件内容,会覆盖原文件内容,单独存在,意义不大
x 单独存在,毫无意义

目录: 

r: 可以对此目录执行ls以列出内部的所有文件;
w: 可以在此目录创建、修改、删除文件;
x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;
只有 r 权限时,可以读 ( 有报错 ) ,不能写,也不能进入目录
只有 w 权限时,毫无意义
只有 x 权限时,只能进入,不能读,不能写
目录的 rw 权限:可以查看内容,不可以进入目录,不能删除目录或它里面的文件
目录的 rx 权限:可以查看内容,可以进入目录,不可以修改目录的内容
目录的 wx 权限:不可以查看目录内容,可以进入目录,可以删除
目录下的文件,前提是你需要知道目录下有什么文件

查看文件的权限 

 可以使用 ls -l ,如果是目录需要加上 -d选择,否则值限制此目录下有什么文件 

[root@mysql tmp]# ls
test test.txt
[root@mysql tmp]# ll test.txt
-rw-r--r-- 1 root root 0 Apr 20 09:01 test.txt
[root@mysql tmp]# ll -d test
drwxr-xr-x 2 root root 6 Apr 20 09:01 test

权限针对的三类用户:

权限由三个部分组成:所有者、组和其他用户
u: user 属主
g: group 属组
o: other 其它用户

ls -l 命令显示的意义

 

[root@mysql tmp]# ls -l test.txt
-rw-r--r-- 1 root root 0 Apr 20 09:01 test.txt

第一栏代表这个文件的类型与权限

第一个字符代表这个文件是 目录、文件或链接文件等等
当为 [ d ] 则是目录,例如上表文件名为 “.config” 的那一行; 当为 [ - ] 则是文件,例如上表文件名为 “initial-setup-ks.cfg” 那一行;
若是 [ l ] 则表示为链接文件( link file );
若是 [ b ] 则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
若是 [ c ] 则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)
接下来的字符中,以三个为一组,且均为 “rwx” 的三个参数的组合。其中,[ r ]代表可读( read )、 [ w ] 代表可写( write )、 [ x ] 代表可执行(execute ).要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ] 而已。
第一组为 文件拥有者可具备的权限
第二组为 加入此群组之帐号的权限
第三组为 非本人且没有加入本群组之其他帐号的权限
举例:
若有一个文件的类型与权限数据为“-rwxr-xr--” ,请说明其意义为何?
所有者:可读、可写、可执行( rwx
所属组:本例中为可读可执行( rx
其他人:只读

 

修改文件的属性和权限

chgrp 改变文件所属群组
chown 改变文件拥有者
chmod 改变文件的权限 , SUID, SGID, SBIT 等等的特性
举例:
1.  改变文件的拥有者。将 test.txt 文件的拥有者改为 test 用户。
[root@mysql tmp]# ll test.txt
-rw-r--r-- 1 root root 0 Apr 20 09:01 test.txt
[root@mysql tmp]# id test
uid=1001(test) gid=1001(test) groups=1001(test)
[root@mysql tmp]# chown test test.txt
[root@mysql tmp]# ll test.txt
-rw-r--r-- 1 test root 0 Apr 20 09:01 test.txt
2.   同样将文件的小组改为 test.
[root@mysql tmp]# ll test.txt
-rw-r--r-- 1 test test 0 Apr 20 09:01 test.txt
3.   同样也可以用 chown 同时改变拥有者和所属组
[root@mysql tmp]# useradd t2
[root@mysql tmp]# chown t2.t2 test.txt
[root@mysql tmp]# ll test.txt
-rw-r--r-- 1 t2 t2 0 Apr 20 09:01 test.txt

//或者换一种写法效果一样

[root@mysql tmp]# useradd t3
[root@mysql tmp]# chown t3:t3 test.txt
[root@mysql tmp]# ll test.txt
-rw-r--r-- 1 t3 t3 0 Apr 20 09:01 test.txt
修改文件权限, chmod 命令的使用
  chmod

u

g

o

a

+  (加入)

  -(除去)

     =  (设置)

r

w

x

文件或者目录

隐藏权限

默认权限与隐藏权限

除了基本 r, w, x 权限外,在 Linux 传统的 Ext2/Ext3/Ext4 文件系统下,我们还可以设置其他的系统隐藏属性,这部份可使用chattr 来设置,而以lsattr 来查看,最重要的属性就是可以设置其不可修改的特性!让连文件的拥有者都不能进行修改!这个属性可是相当重要的,尤其是在安全机制上面(security )!比较可惜的是,在 CentOS 7.x 当中利用 xfs 作为默认文件系统,但是 xfs 就没有支持所有的 chattr 的参数了!仅有部份参数还有支持而已

默认权限:umask

创建一个新的文件或目录时,它的默认权限会是什么?那就与 umask 有关 了!umask 是什么呢? umask 就是指定“目前使用者在创建文件或目录时候的权限默认值”,

[root@mysql tmp]# umask
0022
[root@mysql tmp]# umask -S
u=rwx,g=rx,o=rx

umask:遮罩码,反向掩码 影响用户新创建的文件和目录的默认权限

666-umask
777-umask
在默认权限的属性上,目录与文件是不一样的。我们知道 x 权限对于目录是非常重要的!但是一般文件的创建则不应该有执行的权限,因为一般文件通常是用在于数据的记录嘛!当然不需要执行的权限了。因此,默认的情况如下:
若使用者创建为 文件 则默认 没有可执行( x )权限 ,亦即只有 rw这两个项目,也就是最大为666 分,默认权限如下:
-rw-rw-rw-
若使用者创建为 目录 ,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为777 分,默认权限如下:
drwxrwxrw
因为 umask 022 ,所以 user 并没有被拿掉任何权限,不过 group 与others 的权限被拿掉了 2 (也就是 w 这个权限),那么当使用者:
创建文件时:( -rw-rw-rw- - -----w--w- ==> -rw-r--r-- ---
>644
创建目录时:( drwxrwxrwx - d----w--w- ==> drwxr-xr-x --
--->755

隐藏权限

//查看文件的隐藏权限,lsattr命令

[root@mysql tmp] # lsattr test.txt
---------------- test.txt
//chattr 更改文件的隐藏权限。
a :让文件或目录仅供附加用途;
b :不更新文件或目录的最后存取时间;
c :将文件或目录压缩后存放;
d :将文件或目录排除在倾倒操作之外;
i :不得任意更动文件或目录;
s :保密性删除文件或目录;
S :即时更新文件或目录;
u :预防意外删除

 最重要的当属 +i 与 +a 这个属性了。+i 可以让一个文件无法被更动,对于需要强烈的系统安全的人来说,真是相当的重要的!里头还有相当多的属性是需要 root 才能设置

举例:
-i 选择的运用
[root@mysql tmp]# pwd
/tmp
[root@mysql tmp]# touch t1.txt
[root@mysql tmp]# chattr +i t1.txt
[root@mysql tmp]# lsattr t1.txt
----i----------- t1.txt
[root@mysql tmp]# rm -f t1.txt
rm: cannot remove ‘t1.txt’: Operation not permitted //即使
是root也没有权限删除和移动
[root@mysql tmp]# mkdir testdir
[root@mysql tmp]# mv t1.txt testdir/
mv: cannot move ‘t1.txt’ to ‘testdir/t1.txt’: Operation
not permitted
2 -a 选项的运用。文件内容只能追加,不能覆盖。
[root@mysql tmp]# cat t1.txt
123
[root@mysql tmp]# chattr +a t1.txt
[root@mysql tmp]# lsattr t1.txt
-----a---------- t1.txt
[root@mysql tmp]# echo 456 > t1.txt
-bash: t1.txt: Operation not permitted
[root@mysql tmp]# echo 456 >> t1.txt

三、特殊权限和Facl

SUID:

运行某程序时,相应进程的属主是程序文件自身的属主,而不是用户本身了, 只对二进制程序有效 , 执行者对于程序需要有 x 权限
例子: passwd 命令 需要在 /etc/shadow 中写入密码
ls -l /bin/cat
ls -l /etc/shadow
chmod u+s file (如果本身具有 x ,为 s ,否则为 S
总结: 其他人,运行SUID的文件时,就临时拥有了SUID文件所属者的权限。

SGID 

对于文件: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是用户本身的基本组
对于目录
用户对此目录有 rx 权限可以进入目录
用户进入此目录后,有效用户组会变成该目录的用户组
若用户在此目录有 w 权限,则用户创建的文件用户组与该目录用户组相同

Sticky (BIT):

只针对目录有效 , 当用户对目录拥有 wx 权限时,用户在该目录创建的文件或目录,只有自己与root 才可以删除。
在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件(冒险位,粘贴位)

FACL  

文件系统访问控制列表
FACL:filesystem access control list
利用文件的扩展属性,保存了额外的访问控制权限
getfacl 查看、 setfacl 设置
语法: setfacl [-bkRd] [-m|-x acl 参数 ] 目标文件名
选项与参数:
-m: 设置后续的 acl 参数,不可与 -x 一起使用
-x: 删除后续的 acl 参数,不可与 -m 一起使用
-b: 删除所有的 acl 参数
-k: 删除默认的 acl 参数
-R: 递归设置 acl 参数
-d: 设置默认 acl 参数,只对目录有效

 

 

 

 

 

 

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

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

相关文章

uni-app获取系统信息(手机牌子、手机型号、屏幕宽度、屏幕高度)

uni.getSystemInfo({success(res) {console.log(res.brand) //手机牌子console.log(res.model) //手机型号console.log(res.screenWidth) //屏幕宽度console.log(res.screenHeight) //屏幕高度}) .exec()}}); 如下 官网链接:系统信息的概念 | uni-app官网

基于Java学生作业管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

机器学习面试题 - 模型评估1

目录标题 1、准确率的局限性广告投放问题: 2、精确率与召回率的权衡2.1 案例2.2 P-R曲线 3、平方根误差4、ROC曲线5、如何绘制ROC6、如何计算AUC7、ROC曲线相比P-R曲线有什么特点? 模型评估主要分为离线评估和在线评估两个阶段。 针对分类、排序、回归、…

uni_app 微信小程序 苹果手机 边框显示不全

![在这里插入图片描述](https://img-blog.csdnimg.cn/3a4c4ab1a146444c84c72d360a057c01.png 解决方案: 原因:是因为我们在设置边框的时候设置的rpx ,自适应会自动换算px, 两者之间的比例一般都是1.5-2之间,对于边框 border 来说…

指定专业和城市|超声科医生赴美国佐治亚理工学院自费访学

从事超声医学的Y医生拟自费赴美国访学,希望在亚特兰大附近,且专业相符。最终我们落实了佐治亚理工学院的职位,专业及地理位置都符合申请人的预期目标。 Y医生背景: 申请类型:自费访学 工作背景:三甲医院医…

QT 实现windows系统文件拖拽

效果预览: 2023-07-05 14-29-11 功能描述: 1.首先实现了根据文件的路径获取了文件的信息,通过 QFileIconProvider 获取图标信息,并在界面上进行展示。 2.dropEvent 是实现拖拽功能的核心。重新此事件函数,并将窗口设…

vue实现动态URL

最近在项目上要用到动态baseURL,用的是vuex存储,具体实现如下 1.拦截器中重写baseURL 但是需要注意的是这个url必须符合URL格式,所以前端校验是必须的 2.前端校验 const validateUrl (rule, value, callback) > {if (isBlank(value)) {callback(ne…

【技巧】快速提取PowerPoint文件的图片

如果你看到PPT里的图片或背景素材比较好看,想要保存下来,你会怎么做呢? 可能很多人首先想到的就是选择图片后另存下来,或者使用截图保存,这也是一种方法,但如果图片很多的话,就十分繁琐和费时间…

MySQL用户与权限管理

用户与权限管理 1. 用户管理1.1 创建用户1.2 修改用户1.3 删除用户1.4 用户密码相关1.4.1 密码修改1.4.2 密码管理机制 2. 权限管理2.1 授予权限原则2.2 查看权限2.3 授予权限2.4 收回权限 3. 权限表4. 访问控制 1. 用户管理 MySQL用户分为root用户和普通用户;root…

大模型时代的模型运维与部署:LLMops

文章目录 1 LLMOps介绍1.1 关联定义1.2 LLMOps 与 MLOps 2 LLMOps实现步骤2.1 数据管理2.1.1 数据清洗和预处理技术2.1.2 数据标记和注释2.1.3 数据存储、组织和版本控制2.1.4 数据合规性检验 2.2 基础模型的选择2.3 迭代和提示管理2.4 测试评估2.5 部署2.6 监控 3 参考文献 1 …

万物的算法日记|算法学习 [java 二分法 acwing789.数的范围]

算法语言:java 题目来源:acwing.789 文章目录 题目描述题解五点七边的二分法第一个细节 l,r 边界问题为什么 l 边界初始化为 -1?同理为什么 r 边界初始化为 N而不是N-1 ?第二个细节 m是否始终处于[0,N)以内第三个细节&#xff0c…

【UnityDOTS 四】System的理解

System的理解 前言 System主要用于在ECS中进行逻辑处理。它具有自己的声明周期,主要分为两类:ISystem,SystemBase。前一个是非托管内存访问,后一个是托管内存访问。 一、Systemg认知 System在主线程运行,可以在代码中使用Job系…

基于php电影动漫在线观看系统 (源码➕数据库)

本系统主要是为用户提供一个动漫视频观看的平台,系统分为两个角色,一个是用户角色,另一个是管理员角色,其中用户角色可查看动漫视频的分类,查看动漫视频的详情,点击播放动漫视频,对动漫视频进行…

如何使用 OpenCV 去除图像背景

文末附源代码的免费下载链接 在本教程中,我们将学习如何使用 OpenCV 使用一种名为背景减法的技术来去除视频中的背景。 背景扣除是计算机视觉中用于检测视频中移动物体的常用技术。对于安全、监视、交通监控等来说,这是一种非常有用的技术。 背景减法的基本思想是通过从前景…

VirtualBox安装Ubuntu(22.04.2)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【Hello mysql】 数据库基础

Mysql专栏:Mysql 本篇博客简介:简单的介绍mysql相关的一些基础知识和在Linux环境下的安装 让大家对于mysql有一个初步的认知 数据库基础 数据库基础数据库定义数据库再理解软件角度文件角度总结 主流数据库mysql安装卸载不要的环境获取mysql官方yum源安装…

MySQL数据库引擎及账号管理

目录 前言 二、MySQL数据库引擎 1.是什么 2.MySQL的核心 3.MySQL的存储引擎 a.InnoDB(MySQL默认引擎) b.ACID事务 c.四种隔离级别 d.MyISAM e.MEMORY(Heap) 4.存储引擎查看 三、命令行操作数据库 四、账号管理 前言 MySQL安装请看MySQL的安装…

输入框input事件compositionstart和compositionend的妙用

现象&#xff1a; 在将输入输入法切换到中文的时候&#xff0c;在打拼音的过程中也会触发oninput事件&#xff0c;如下&#xff1a; const Demo()>{const [value,setValue]useState("");return (<><input onInput{(e)>{console.log("value&…

【多种优化算法比较】混沌引力搜索算法(CGSA)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

byte字节值与ASCII表中char之间的转换

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…