linuxOPS系统服务_linux文件权限管理

news2024/11/18 3:32:39

什么是权限

**权限:**在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利

权限的目的

文件权限的设置目的:是想让某个用户有权利操作文件

权限的分类

  • 普通权限rwx

    用户正常情况去操作文件所具有的权限

  • 高级权限st

    用户对某个文件操作有特殊需求,而普通权限不能满足,需要给文件设置高级权限

  • 默认权限umask

    用户在系统中创建一个文件,该文件默认都会有一个权限,该权限是默认有的
    注意:

权限是设置在文件上的,而不是用户

普通权限rwx(重点)

read读权限

  • 针对目录

    一个目录拥有r权限,说明可以查看该目录里的内容(ls命令列出)

  • 针对普通文件

    一个普通文件拥有r权限,说明可以查看该文件的内容(cat/head/tail/less/more等命令查看)

  • 读权限==r==(read)用数字表示是**4**

write写权限

  • 针对目录

    一个目录拥有w权限,说明可以在该目录里==创建、删除、重命名==等操作(mkdir/touch/mv/rm等)

  • 针对普通文件

    一个普通文件拥有w权限,说明可以==修改文件的内容==(vi/vim编辑器编辑文件)

  • 写权限==w(write)用数字表示是2==

execute执行权限

  • 针对目录

    一个目录拥有x权限,说明可以==进入或切换到==该目录里(cd命令)

  • 针对普通文件

    一个普通文件拥有x权限,说明可以==执行==该文件(一般程序文件、脚本文件、命令都需要执行权限)

  • 执行权限==x(execute)用数字表示是1==

rwx = 读写执行 = 4 + 2 + 1

没有权限

没有任何权限用横杠==-表示,数字表示是0==

理解UGO

UGO,指的是==用户身份,每个字母代表不同的==用户身份。

  • U(the user who owns it)

    文件的拥有者(owner)或者创建者

  • G(other users in the file’s group)

    在文件的所属组(默认是创建文件的用户的主组)里的用户

  • O(other users not in the file’s group)

    既不是文件的创建者,也不在文件属组里的用户,称为其他人

注意:

​ 除了上面ugo以外,还有一个字母==a(all users),表示所有用户==,包含ugo

查看文件的权限

ls -l 文件名称
或
ll 文件名称

如果查看一个文件夹的权限,建议使用-d
在这里插入图片描述

普通权限rwx

rwx对文件的影响

r对文件的影响
  • 针对目录

    一个目录拥有r权限,说明可以查看该目录里的内容(ls命令列出)

  • 针对普通文件

    一个普通文件拥有r权限,说明可以查看该文件的内容(cat/head/tail/less/more等命令查看)

  • 读权限==r==(read)用数字表示是**4**

w对文件的影响
  • 针对目录

    一个目录拥有w权限,说明可以在该目录里==创建、删除、重命名==等操作(mkdir/touch/mv/rm等)

  • 针对普通文件

    一个普通文件拥有w权限,说明可以==修改文件的内容==(vi/vim编辑器编辑文件)

  • 写权限==w(write)用数字表示是2==

如果我们想在Linux系统中删除某个文件,不是看这个文件有什么权限,而是要看这个文件所处的上级目录是否具有w权限。

x对文件的影响
  • 针对目录

    一个目录拥有x权限,说明可以==进入或切换到==该目录里(cd命令)

  • 针对普通文件

    一个普通文件拥有x权限,说明可以==执行==该文件(一般程序文件、脚本文件、命令都需要执行权限)

    shell.sh => 类似Windows中的exe文件

  • 执行权限==x(execute)用数字表示是1==

图解常见操作权限

/

/dir1 /dir2

/dir1/file1

在这里插入图片描述

用户身份

U : user,代表文件的拥有者(默认为文件的创建者)

G :group,与文件所属组同组的用户(组内用户)

O :other,既不是拥有者,也不是所属组内的用户,这些用户就称之为其他用户

a = UGO,代表所有用户

如何判断不同身份的用户对文件的权限

ls -l
或
ll

注:ll代表红帽以及CentOS系统专有的一个命令,等价于ls -l。但是其他系统可能并不支持
在这里插入图片描述

权限的设置(重点)

① 字母方式(ugo + rwx)

② 数字方式(4 2 1)

基本语法:

chmod [选项] 字母形式或数字形式 文件名称

选项说明:
-R : 递归设置,针对文件家(目录)

字母形式(三步走)

第一步:确认给谁设置权限(u,g,o,ugo=a)

第二步:怎么设置权限(+, -, =)

第三步:授予什么样的权限(r,w,x)

案例:给readme.txt设置权限,要求文件拥有者rwx权限,所属组内用户rw,其他用户r权限

chmod u=rwx,g=rw,o=r readme.txt

数字形式(421)
read = 4

write = 2

execute = 1

777

644

755

7 = 4 + 2 + 1 = r + w + x = rwx
6 = 4 + 2 = rw
5 = 4 + 1 = rx

案例:设置shop文件夹权限为777(所有拥有都拥有rwx)

chmod -R 777 shop

高级权限

在Linux系统中有哪些高级权限

① 冒险位(u + s) => S

  • 冒险位,指文件操作者(用户)临时拥有文件拥有者的权限
  • 冒险位,一般针对的是命令或者脚本文件
  • 冒险位,用字母表示是s或S;数字表示是4
  • 冒险位的设置:chmod u+s 文件名或者chmod 4xxx 文件名

主要针对可执行的二进制文件,如/usr/bin/passwd文件

② 强制位(g + s)

  • 强制位,一般针对的是目录

    如果一个目录拥有强制位,那么任何用户在该目录里所创建的任何文件的属组都会继承该目录的属组

  • 强制位,用字母表示是s或S;数字表示是2

  • 强制位的设置:chmod g+s 文件名或者chmod 2xxx 文件名

主要针对目录进行设置,比如shop目录,文件拥有者root,所属组wangwu,g+s

这样以后我们在shop目录下创建的所有文件的所属组都会继承shop文件夹的itheima

③ 粘滞位(o + t) => T

  • 粘滞位,一般针对的是公共目录

    如果一个公共目录拥有粘滞位,那么该目录下的文件,只有root文件的创建者可以删除,其他人只能自己管理自己。(A用户不能删除B用户创建的文件)

  • 粘滞位,用字母表示是t或T;数字表示是1

  • 粘滞位的设置:chmod o+t 文件名或者chmod 1xxx 文件名

默认权限(了解)

什么是文件的默认权限

所谓文件的默认权限(遮罩权限),是指用户创建文件后,文件天生就有的权限,不需要设置。

文件默认权限由谁控制

文件默认权限由一个叫做**umask**的东西来控制。

文件或目录的最高权限

目录:最高权限0777,简写就是777

文件:最高权限0666,简写就是666

默认目录权限 = 0777 - umask

默认文件权限 = 0666 - umask

获取umask值

默认umask值,root账号0022

临时或永久更改umask值(慎用,只了解)

临时设置umask值
umask 0002

只在当前终端当前进程中有效

永久设置umask值(写入系统配置)

配置文件说明:
全局配置文件(针对所有用户所有进程) => 针对所有用户有效
/etc/profile
系统和用户的环境变量信息,当用户第一次登录时,该文件被读取
/etc/bashrc
每个运行的bash信息(系统别名、函数及默认权限的定义),当bash被打开时,该文件被读取

局部配置文件(针对某个特定用户以及用户的所有进程) => 针对当前用户有效
~/.bashrc
当前用户的bash信息,当用户登录和每次打开新的shell时该文件被读取
~/.bash_profile
当前用户的环境变量,当用户登录时,该文件被读取
~/.bash_history
保存当前用户历史命令的文件
~/.bash_logout
当用户退出bash或者终端时,会首先执行该文件里的代码,然后再退出

案例:更改umask值,针对所有用户有效,umask值设置为0002
# vim /etc/bashrc
...
umask 0002

# source /etc/bashrc   =>   让umask值立即生效
案例:更改umask值,只针对wangwu用户有效,umask值设置为0002
su - wangwu
[wangwu@localhost ~] # vim ~/.bashrc
...
umask 0002

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

什么是拥有者什么是所属组
在这里插入图片描述

更改文件的拥有者与所属组

有些软件或程序要求比较特殊,其如果想正常运行,拥有者与所属组必须是某个值。

如mysql数据库,其要求系统中必须有一个mysql的系统账号,而且要求其安装目录的文件拥有者以及所属组都必须是mysql

chown更改文件拥有者

chown [选项] 新文件拥有者 文件名称

选项说明:
-R :递归设置,主要针对文件夹

chgrp更改文件的所属组

chgrp [选项] 新文件所属组 文件名称

选项说明:
-R :递归设置,主要针对文件夹

chown同时修改文件属主以及属组

chown [选项] 新的文件拥有者:新的文件所属组 文件名称
chown [选项] 新的文件拥有者.新的文件所属组 文件名称

选项说明:
-R :递归设置,主要针对文件夹

ACL访问权限控制(扩展)

ACL能做什么

  1. ACL访问控制策略可以作为前面所讲权限的补充更加细的来控制文件的权限
  2. ACL策略可以只针对某个用户在文件上有相应权限
  3. ACL策略也可以只针对多个用户或者一个组里的所有用户在文件上有相应权限

getfacl

基本语法:

getfacl = get + file + acl => 获取某个文件的ACL权限

案例:获取readme.txt文件的ACL权限
getfacl readme.txt

setfacl

常用选项:
-m 修改或者设置ACL策略
-R 递归授权,对目录下已存在的目录或文件有acl策略,但新建的文件没有
-x 去掉某个用户或者某个组的权限
-b 删除所有的acl策略
-d 默认ACL策略,只针对目录,该目录下新建的目录和文件都会继承acl策略
mask: 定义除其他人和所有者外的最大权限

案例:修改readme.txt文件的ACL权限(给itheima这个账号开通rw权限)
setfacl -m u:wangwu:rw readme.txt

u代表user
wangwu代表具体的某个用户
rw代表权限

案例:修改shop文件夹的ACL权限(给itheima组开通rwx权限)
# setfacl -R -m g:wangwu:rwx shop

g代表group
wangwu代表具体的某个用户组名称
rwx代表用户组权限
案例:删除某个用户权限
setfacl -x u:itheima readme.txt
案例:删除所有的ACL权限
setfacl -b readme.txt

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

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

相关文章

FPGA基础知识-任务和函数

目录 学习目标 学习内容 1.任务和函数的区别 2.任务 3.函数 学习时间 学习总结 学习目标: 1.理解任务和函数之间的区别。 2.理解定义任务所需的条件,学会任务的声明和调用。 3.理解定义函数所需的条件.学会函数的声明和调用。 学习…

JavaScript之ES6高级语法(四)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 ES6高级语法(四) 前言一、深浅拷贝1.1、浅拷贝1.2、深拷贝1.2.1、递归实现深拷贝1.2.2、js库lodash里面cloneDee…

你们软件测试面试最难的一道题是什么?

在测试面试时,面试官往往会出一个简单的场景让大家进行测试点设计来考察大家的测试设计能力,题目看似简单实则蕴藏杀机,测试人员需要根据自己的工作年限做出不同的回答方可过关。 如果你工作1-2年,那么你只需要回答功能方面的测试…

源来Intel——开放原子全球峰会

文章目录 Intel的开源之路AI领域边缘人工智能在中国的发展趋势边缘人工智能领域的挑战生态系统解决方案英特尔针对边缘人工智能的产品总结 英特尔基础软件赋能中国生态Intel : 软件优先 推动中国市场中国Linux操作系统生态Intel全力投入中国开源社区开发国产Linux厂商&#xff…

I2C中的时钟同步与仲裁

时钟同步和仲裁 在单主设备中,不需要时钟同步和仲裁。而在多设备时,多个主设备可以同时在空闲的总线上开始发送数据,这时就需要仲裁决定哪一个来控制总线并完成它的数据传输,有时候也需要时钟同步来协同设备间的工作。而这正是通过…

Android音视频开发实战02-Jni

一 JNI 1.1 什么是JNI JNI是Java Native Interface的缩写,是Java提供的一种机制,用于在Java代码中调用本地(C/C)代码。它允许Java代码与本地代码进行交互,通过JNI,Java应用程序可以调用一些原生库或者操作…

Maven编译常见问题收集

1、父pom里面有引入lombok依赖&#xff0c;为什么子pom有用到lombok&#xff0c;依然识别不到呢 这是因为父pom引入依赖的时候&#xff0c;把 <dependency></dependency>依赖标签&#xff0c;最外层包 在了<dependencyManagement></dependencyManagemen…

Python学了基本语法 下一步该干什么 ?

刚入门Python,学习了基本语法后&#xff0c;你可以开始编写简单的程序了。接下来&#xff0c;你可以学习Python的标准库和第三方库&#xff0c;掌握更多的编程技巧和知识&#xff0c;提高自己的编程能力。同时&#xff0c;也可以通过实践项目来巩固所学知识&#xff0c;提高自己…

web3描述以太坊与区块链之间的操作关系

好通过前面两篇文章 Web3.0概念 web3带大家简单建立区块链概念 大家开始明白 web3.0是基于区块链为基础开发的 我们讲区块链多次提到以太坊 EVM 那这个东西到底是什么呢&#xff1f; 就现在的情况来讲 从零到一去搭建一个区块链环境 那可太难了 所以 以太坊一开始 确实是做一…

关于GPT-3和GPT-4,你需要知道都在这里

友情提示 提示&#xff1a;本文约3500个文字&#xff0c;字数较长&#xff0c;可直接点击序号进入相关目录阅读字数 文章目录 友情提示前言一、什么是 GPT-3、GPT-4 和 ChatGPT&#xff1f;二、对未来的担忧三、什么时候可以用GPT4&#xff1f;四、GPT-4用在什么地方五、GPT-4能…

json_decode返回NULL

json_decode返回NULL 最近在调用某公司的API时&#xff0c;将对方返回的数据&#xff0c;使用PHP的json_decode函数解析&#xff0c;但是返回NULL,最终排查为对方传送来的json格式有误 打印$_REQUEST&#xff0c;数据结构大致如下&#xff1a; 1 2 3 4 5 6 7 8 9 10 array (…

Android 面试延伸技术点有哪些,你能答上几个?

1、如何进行单元测试&#xff0c;如何保证 App 稳定 &#xff1f; 参考回答&#xff1a; 要测试 Android 应用程序&#xff0c;通常会创建以下类型自动单元测试 本地测试&#xff1a;只在本地机器 JVM 上运行&#xff0c;以最小化执行时间&#xff0c;这种单元测试不依赖于 An…

JavaScript之ES6高级语法(三)

本文是我在学习过程中记录学习的点点滴滴&#xff0c;目的是为了学完之后巩固一下顺便也和大家分享一下&#xff0c;日后忘记了也可以方便快速的复习。 ES6高级语法(三&#xff09; 前言一、原型对象1.1、constructor 属性1.2、对象原型 二、原型继承三、原型链 前言 今天学习的…

【C++】红黑树的概念与模拟实现

红黑树的概念与模拟实现 红黑树的概念红黑树的性质红黑树节点的定义红黑树的迭代器红黑树的插入红黑树和AVL树的比较红黑树的模拟实现 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。…

计算机组成原理(0)概述

前言 没有想好到底是要怎么学习&#xff0c;看哪个视频课&#xff0c;看到1.2 计算机的基本组成1.2-a1_哔哩哔哩_bilibili 是15年录的视频读PPT课本不一样就更不想看了&#xff0c;但是CSAPP难度大&#xff08;主要是广度&#xff0c;所以可能不很适用于考试或计组的学习&…

java代码审计和安全漏洞修复

java代码审计和安全漏洞修复 本文目录 java代码审计和安全漏洞修复开源&#xff1a;奇安信代码卫士官网使用gitee服务使用 非开源&#xff1a;思客云找八哥错误类型以及修改方法1.硬编码2. 路径操作3. 路径操作 - Zip文件条目覆盖4. SQL注入5. SQL注入 - Hibernate6. XML外部实…

视频与图片检索中的多模态语义匹配模型 ——原理、启示、应用与展望

前言 三多前笔者在《万字长文漫谈视频理解》[1]一文中&#xff0c;曾经将自己对视频理解的认识进行过简单总结&#xff0c;幸而获得了朋友们的认可&#xff0c;能让读者认可是笔者最为骄傲的成就。现在看来文中观点有不少纰漏狭隘之处&#xff0c;特别是近年来多模态模型的流行…

6.5this关键字

1. 关键字&#xff1a;this 1.1 this 是什么&#xff1f; 首先。this在Java中是一个关键字&#xff0c;this 指代的是本类的引用对象 1.2 什么时候使用 this 1.2.1 实例方法或构造器中使用当前对象的成员 1、在实例方法或构造器中&#xff0c;我们在使用get和set方法中使用…

行为型设计模式06-迭代器模式

&#x1f9d1;‍&#x1f4bb;作者&#xff1a;猫十二懿 ❤️‍&#x1f525;账号&#xff1a;CSDN 、掘金 、个人博客 、Github &#x1f389;公众号&#xff1a;猫十二懿 迭代器模式 1、迭代器模式介绍 迭代器模式是一种行为型设计模式&#xff0c;它提供了一种方法来访问聚…

HydroD 实用教程(九)时域水动力分析

目 录 一、前言二、前处理三、定义/提交作业3.1 创建分析作业3.2 定义输入数据3.3 设置执行指令3.4 指定输出格式3.5 提交求解计算 四、输出文件五、结果后处理5.1 绘制力/位移时程5.2 傅里叶变换与导荷5.3 播放时域结果动画 六、参考文献 一、前言 SESAM &#xff08;Super El…