Linux普通权限、特殊权限、扩展权限和Umask值介绍

目录

一.简单权限介绍

1.文件系统权限

2.三种基本权限

3.修改文件和目录的权限

4.修改文件或模流属主和属组

二.文件和目录的特殊权限

1.SUID

2.SGID

3.Sticky Bit

三.ACL扩展权限

1.设置和查看扩展权限

2.setfacl常用参数

3.删除指定扩展权限操作演示

四.umask权限掩码

1.验证一下是否是通过umask来默认创建的

2.永久修改umask值


 

一.简单权限介绍

1.文件系统权限

针对于属主、属组、其他人三个对象定义了三个基本字段的权限

(1)属主owner

简写为u

(2)属组group

简写为g

(3)其他人other

简写为o

2.三种基本权限

其中rw权限不会对root产生影响,x权限会造成限制

(1)r

读权限,权限数值为4(八进制),若是目录的r权限没有则只能ls却不能cd进去,文件没有r权限则不能查看

(2)w

写权限,权限数值为2,若是目录没有w权限则不能在内创建文件,若是文件没有w权限则不能编辑该文件

(3)x

执行权限,权限数值为1,用来确保目录可cd,文件可执行

3.修改文件和目录的权限

chmod命令,主要用到-R参数,表示将目录下的文件和子目录的权限都进行递归修改

(1)使用权限缩写方式

使用+/-/=为目录或文件增加/减少/赋予给定权限

[root@R9 aaa]# ll
total 0
drwx-wx-wx. 2 root root 6 Dec 27 21:23 a.txt
[root@R9 aaa]# chmod u-rw a.txt/
[root@R9 aaa]# ll
total 0
d--x-wx-wx. 2 root root 6 Dec 27 21:23 a.txt
[root@R9 aaa]# chmod g+r a.txt/
[root@R9 aaa]# ll
total 0
d--xrwx-wx. 2 root root 6 Dec 27 21:23 a.txt
[root@R9 aaa]# chmod ugo+rw a.txt/
[root@R9 aaa]# ll
total 0
drwxrwxrwx. 2 root root 6 Dec 27 21:23 a.txt

(3)使用权限数值方式

使用八进制的权限值来指定权限

[root@R9 aaa]# chmod 411 a.txt/ 
[root@R9 aaa]# ll
total 0
dr----x--x. 2 root root 6 Dec 27 21:23 a.txt
[root@R9 aaa]# chmod 644 a.txt/ 
[root@R9 aaa]# ll
total 0
drw-r--r--. 2 root root 6 Dec 27 21:23 a.txt

4.修改文件或模流属主和属组

同样主要用到-R参数,表示将目录下的文件和子目录的属主或属组都进行递归修改

(1)修改属主

chown命令

[root@R9 aaa]# ll
total 0
drw-r--r--. 2 sulibao root 6 Dec 27 21:23 a.txt
[root@R9 aaa]# ll
total 0
drw-r--r--. 2 sulibao root  6 Dec 27 21:23 a.txt
drwx-wx-wx. 2 root    root 19 Dec 27 21:32 b
[root@R9 aaa]# ll b
total 4
-rw--w--w-. 1 root root 6 Dec 27 21:32 b.txt
[root@R9 aaa]# chown sulibao -R b   #递归修改
[root@R9 aaa]# ll b
total 4
-rw--w--w-. 1 sulibao root 6 Dec 27 21:32 b.txt

(2)修改属组

chown或chgrp命令

[root@R9 aaa]# chown :su a.txt/   #使用冒号或者点来表示属主不变只改属组
[root@R9 aaa]# ll
total 0
drw-r--r--. 2 sulibao su    6 Dec 27 21:23 a.txt
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b
[root@R9 aaa]# chown .sulibao a.txt/
[root@R9 aaa]# ll
total 0
drw-r--r--. 2 sulibao sulibao  6 Dec 27 21:23 a.txt
drwx-wx-wx. 2 sulibao root    19 Dec 27 21:32 b
​
[root@R9 aaa]# chgrp root a.txt/   #chgrp只修改属组
[root@R9 aaa]# ll
total 0
drw-r--r--. 2 sulibao root  6 Dec 27 21:23 a.txt
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b

二.文件和目录的特殊权限

包含有SUID、SGID、Sticky Bit

1.SUID

u+s,权限数值为4,映射在owner处,他指的是即使这个用户不具有该文件的权限,而设置SUID让其在运行进程时暂时获得该文件所有者的权限,但进队二进制文件有效。SUID的缩写s在这个文件的所有者有执行权限的情况下会反映为小写s,若没有执行权限则反映为大写S。如下演示。

(1)设置特殊权限

[root@R9 aaa]# ll
total 0
drw-r--r--. 2 sulibao root  6 Dec 27 21:23 a.txt   #此时所有者没有执行权限
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b
[root@R9 aaa]# chmod u+s a.txt/
[root@R9 aaa]# ll
total 0
drwSr--r--. 2 sulibao root  6 Dec 27 21:23 a.txt   #映射为大写S
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b
​
[root@R9 aaa]# chmod u+x a.txt/   #此时所有者有执行权限
[root@R9 aaa]# ll
total 0
drwxr--r--. 2 sulibao root  6 Dec 27 21:23 a.txt
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b
[root@R9 aaa]# chmod u+s a.txt/
[root@R9 aaa]# ll
total 0
drwsr--r--. 2 sulibao root  6 Dec 27 21:23 a.txt   #映射为小写s
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b

(2)查询设置了SUID的文件

[root@R9 aaa]# find /root/aaa/ -perm /4000  #“/”数字表示法,数值前加上 /,表示要匹配的是该数值相应的权限位被设置了,/4000表示权限为4xxx,但至少是4000
/root/aaa/a.txt
​
#如下,a.txt设置了特殊权限,并且所有者具有执行权限,那么他的权限就可以表示位4744,按4744就可以匹配到,但我设置超出他的权限那么就回匹配不到
[root@R9 aaa]# ll
total 0
drwsr--r--. 2 sulibao root  6 Dec 27 21:23 a.txt
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b
[root@R9 aaa]# find /root/aaa/ -perm 4744
/root/aaa/a.txt
[root@R9 aaa]# find /root/aaa/ -perm 4746

2.SGID

g+s,权限数值为2,映射在group处

(1)对于文件来说,执行程序时,用户将获得该设置了SGID的文件的所属组权限

[root@R9 aaa]# chmod g+s a.txt/
[root@R9 aaa]# ll
total 0
drwsr-Sr--. 2 sulibao root  6 Dec 27 21:23 a.txt
drwx-wx-wx. 2 sulibao root 19 Dec 27 21:32 b
[root@R9 aaa]# find /root/aaa/ -perm /2000
/root/aaa/a.txt

(2)对于目录来说,设置了SGID的目录,该目录内的文件和目录都会自动归属到该目录的所属组

[root@R9 aaa]# chmod g+s b
[root@R9 aaa]# ll
total 0
drwsr-Sr--. 2 sulibao root 6 Dec 27 21:23 a.txt
drwx-ws-wx. 2 root    su   6 Dec 27 22:02 b
[root@R9 aaa]# touch b/b.txt
[root@R9 aaa]# ll b
total 0
-rw--w--w-. 1 root su 0 Dec 27 22:02 b.txt

3.Sticky Bit

o+t,权限数值为1,映射在other处。这个特殊权限只对目录生效,表示若此用户对该目录有wx权限,那么该用户在该目录下的文件和目录只有这个用户和root才能删除,并且只能操作属于自己的文件资源。

[root@R9 aaa]# ll
total 0
drwsr-Sr--. 2 sulibao root  6 Dec 27 21:23 a.txt
d-wx-wx-wx. 2 root    root 71 Dec 27 22:16 b
[root@R9 aaa]# chmod o+t b
[root@R9 aaa]# ll
total 0
drwsr-Sr--. 2 sulibao root  6 Dec 27 21:23 a.txt
drwxrwxrwt. 2 root    root 71 Dec 27 22:16 b
​
[sulibao@R9 b]$ ll
total 0
-rw--w--w-. 1 root root 0 Dec 27 22:07 b.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 c.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 d.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 e.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 f.txt
-rw-r--r--. 1 su   su   0 Dec 27 22:21 my    #sulibao用户没办法删除su用户创建的文件
[sulibao@R9 b]$ rm -rf my 
rm: cannot remove 'my': Operation not permitted

三.ACL扩展权限

这个权限又表示给特定的用户指定特定的权限

1.设置和查看扩展权限

b目录权限为000,设置允许sulibao用户进行rwx

[root@R9 aaa]# setfacl -m u:sulibao:rwx b
[root@R9 aaa]# getfacl b
# file: b
# owner: root
# group: root
user::---
user:sulibao:rwx
group::---
mask::rwx
other::---
[root@R9 aaa]# ll
total 0
drwsr-Sr--. 2 sulibao root  6 Dec 27 21:23 a.txt
d---rwx---+ 2 root    root 81 Dec 27 22:21 b
[sulibao@R9 aaa]$ ll
total 0
drwsr-Sr--. 2 sulibao root  6 Dec 27 21:23 a.txt
d---rwx---+ 2 root    root 81 Dec 27 22:21 b
[sulibao@R9 aaa]$ cd b
[sulibao@R9 b]$ ll
total 0
-rw--w--w-. 1 root root 0 Dec 27 22:07 b.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 c.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 d.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 e.txt
-rw--w--w-. 1 root root 0 Dec 27 22:07 f.txt
-rw-r--r--. 1 su   su   0 Dec 27 22:21 my

2.setfacl常用参数

-m:设定 ACL 权限,一般需要使用“u:用户名:权限”这样的格式来指定给那个用户设置扩展权限,组也可以“g:组名:权限”

-x:删除指定的 ACL 权限

-b:删除所有的 ACL 权限

-d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限

-k:删除默认 ACL 权限

-R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效

3.删除指定扩展权限操作演示

[root@R9 aaa]# setfacl -x u:sulibao b
[sulibao@R9 b]$ ll
ls: cannot open directory '.': Permission denied

四.umask权限掩码

表示通过umask值来设置新建文件或目录时默认的权限,原始情况下新建文件的默认权限值是0666,目录是0777

1.验证一下是否是通过umask来默认创建的

如何验证,我理解的是,通过原始的默认权限值去求差,如果你要新建目录默认是0733,那么就用默认的0777去减0733得出0044此umask值;若是要新建的文件默认是0622,那么就用默认的0666去减0622得出0044次umask,最后就将umask值修改为这个值即可

(1)文件

0666-预设权限值=umask值

(2)目录

0777-预设权限值=umask值

[root@R9 ~]# umask
0044
​
[root@R9 ~]# touch m
[root@R9 ~]# mkdir n
-rw--w--w-. 1 root    root      0 Dec 27 22:32 m
drwx-wx-wx. 2 root    root      6 Dec 27 22:31 n

2.永久修改umask值

[root@R9 ~]# vim /etc/profile   #在最后加上
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then    #UID大于199就设置umask为0002,即权限值为0775(目录),可自行修改umask 0002
elseumask 0022
fi
​
[root@R9 ~]# source /etc/profile   #立即生效
[root@R9 ~]# mkdir sulibao
[root@R9 ~]# ll | grep sulibao
drwxr-xr-x. 2 root    root      6 Dec 27 22:44 sulibao   #root身份创建,其UID小于199,umask值为0022,权限值为755,(目录)

 

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

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

相关文章

Oracle database 静默安装 oracle12c 一键安装 12.1.0.2

基于oracle安装包中应答文件实现一键安装 注意此安装脚本基于12.1.0.2 安装包 原始安装包结构为两个压缩包 此脚本使用安装包为原始压缩包解压后、 重新封装为一个.zip压缩包 建议在linux 环境下解压重新压缩后 使用该脚本 支持环境: Linux :centerOS 7 oracle :12.1.0.…

Docker 概念介绍

1、Docker 简介 Docker一个快速交付应用、运行应用的技术: 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器,各个应用互不干扰启动、移除都可以通过一行命令完成,方便快捷 Doc…

three.js实现3D汽车展厅效果展示

项目搭建 本案例还是借助框架书写three项目,借用vite构建工具搭建vue项目,搭建完成之后,用编辑器打开该项目,在终端执行 npm i 安装一下依赖,安装完成之后终端在安装 npm i three 即可。 因为我搭建的是vue3项目&…

【Python学习笔记(十)】串口被占用导致无法访问的解决办法

串口被占用导致无法访问的解决办法 前言正文1、封装串口打开函数2、解决过程3、实现效果 前言 在项目开发中需要用到串口进行通讯,但当有其他串口调试工具、串口助手等打开占用了某一端口,打开串口时会导致程序卡死,针对这一问题的出现及解决…

CentOS 8 安装指定版本ansible

背景:想要练习ansible使用,用于面试,结果使用centos 8 的yum安装失败,提示版本不兼容(指的是python版本),故而使用python来安装指定版本的ansible,特此记录 环境:win11虚…

苹果手机打开Microsoft Outlook日历ics文件方法

作为一名经常需要处理各种日程安排的苹果用户,我深知ics文件的重要性。ics文件通常来自于我们日常使用的日历应用,比如Microsoft Outlook,是日程信息的标准格式。但很多时候,当我们尝试打开这些ics文件时,却会遇到种种…

gulimall-002 分布式基础概念

1、微服务概念 微服务是一种非常流行的架构风格。 拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行。 每个服务运行在自己的单个进程使用轻量级机制通信可以使用不同的编程语言编写以及不同的数据存储技术 2、集群&分布式&…

【VUE】Flask+vue-element-admin前后端分离项目发布到linux服务器操作指南

目录 一、Flask后端发布环境搭建1.1 python环境第一步:安装python环境第二步:配置python虚拟环境 1.2 uwsgi环境1.3 nginx配置1.4 测试 二、VUE前端发布环境搭建2.1 配置修改2.2 打包上传服务器2.3 nginx配置2.3 测试 三、联合调试 一、Flask后端发布环境…

MyBatis 中 #{}和 ${}的区别是什么?

MyBatis 中 #{}和 ${}的区别是什么? 在 MyBatis 中,#{} 和 ${} 是用于在 SQL 语句中插入参数值的两种方式,它们之间有重要的区别: #{} 的使用: #{} 主要用于预编译的 SQL 语句中,它会将参数值以安全的方式…

python 框架 写一个demo

首先,确保您已经安装了Python和Django。您可以使用以下命令来安装Django: pip install django接下来,创建一个新的Django项目。在命令行中,使用以下命令: django-admin startproject myproject这将创建一个名为mypro…

pyCharm 打印控制台中文乱码解决办法

解决方法 在 "File" -> "Settings" 中的控制台设置: 在 "File" -> "Settings" 中,你可以找到 "Editor" -> "General" -> "Console"。在这里,你可能会找到…

docker学习(十八、network介绍)

[TOC]添加链接描述 首先,我们要知道什么是 Docker 网络。简单来说,它就是 Docker 中用于实现容器间通信的一个东西。 network相关内容: docker学习(十八、network介绍) docker学习(十九、network使用示例br…

【快速全面掌握 WAMPServer】03.玩转安装和升级

网管小贾 / sysadm.cc 大多数情况我们在了解和学习任何一款软件之前都会先去尝试一下软件的安装,毕竟只有安装好了软件,再通过使用它来进一步学习和掌握。 那么同样的道理,我们要学习和掌握如何动手搭建 PHP 的调试环境,那么作为…

启明智显开源项目分享|基于Model 3c芯片的86中控面板ZX3D95CM20S-V11项目软硬件全开源

前言: 本文为4寸 480*480 RGB接口IPS全面触屏的86中控面板(RT-ThreadLVGL)软硬件开源干货内容,该项目是综合性非常强的RTOS系列项目!项目主控芯片使用 Model 3c,整体实现了简化版本的86中控面板的功能需求…

“2023年的技术发展与个人成长:回顾与展望“

文章目录 每日一句正能量前言工作生活未来展望后记 每日一句正能量 凡事顺其自然,遇事处于泰然,得意之时淡然,失意之时坦然,艰辛曲折必然,历尽沧桑悟然。 前言 在这快速发展的信息时代,技术的进步和创新不…

Python网络设备连接和配置工具

当您的Python程序需要运行外部依赖密码的程序,或访问远程服务器时,请使用Paramiko。 Paramiko 是一个实现 SSHv2 协议的 Python 模块。 Paramiko 不是 Python 标准库的一部分,尽管它被广泛使用。 本指南向您展示如何在 Python 脚本中使用 Par…

基于深度学习的召回算法

基于深度学习的召回算法在推荐系统中取得了显著的成功,它利用深度神经网络来学习用户和物品之间的复杂关系,能够更好地捕捉数据中的隐藏模式。以下是一个基于深度学习的召回算法的基本步骤: 数据准备: 收集用户行为数据&#xff…

深入理解C语言中冒泡排序(优化)

目录 引言: 冒泡排序概述: 优化前: 优化后(注意看注释): 解析优化后: 原理(先去了解qsort): 引言: 排序算法是计算机科学中的基础问题之一。在本篇博客中&#xff0c…

[MySQL] MySQL 高级(进阶) SQL 语句

一、高效查询方式 1.1 指定指字段进行查看 事先准备好两张表 select 字段1,字段2 from 表名; 1.2 对字段进行去重查看 SELECT DISTINCT "字段" FROM "表名"; 1.3 where条件查询 SELECT "字段" FROM 表名" WHERE "条件…

计算机组成原理-多处理器系统的基本概念(SISD SIMD MISD MIMD)

文章目录 总览先看这个再往下看 SISDSIMDMISDMIMD向量处理器共享内存多处理器和多核处理器 总览 先看这个 再往下看 SISD 并发就是;先执行一下该指令序列,再执行一下另外一个指令序列 并行就是:两个指令序列同时进行 在某个时间段内只能处理…