Day14-Linux系统基础权限知识精讲

Day14-Linux系统基础权限知识精讲

  • 1. chattr
  • 2. Linux系统权限。
    • 2.1 基础权限介绍
    • 2.2 画图讲解
    • 2.3 文件和目录权限细节总结
    • 2.4 建环境测试
    • 2.5 数字权限设置
    • 2.6 字符权限设置

给文件加特殊属性,实现特殊功能的命令。

1. chattr

a 只能追加内容,不能删除。

i 不能修改,不能删除。

chattr +i oldboy.txt #增加i属性。

chattr -i oldboy.txt #减少i属性。

lsattr 查看chattr设置的属性

练习:i属性

[root@oldboy ~]# touch oldboy.txt
[root@oldboy ~]# lsattr oldboy.txt
---------------- oldboy.txt
[root@oldboy ~]# chattr +i oldboy.txt
[root@oldboy ~]# lsattr oldboy.txt
----i----------- oldboy.txt
[root@oldboy ~]# rm -f oldboy.txt 
rm: 无法删除"oldboy.txt": 不允许的操作

练习:a属性

[root@oldboy ~]# ls oldboy.txt 
oldboy.txt
[root@oldboy ~]# chattr +a oldboy.txt
[root@oldboy ~]# lsattr oldboy.txt 
----ia---------- oldboy.txt
[root@oldboy ~]# chattr -i oldboy.txt
[root@oldboy ~]# lsattr oldboy.txt 
-----a---------- oldboy.txt
[root@oldboy ~]# rm -f oldboy.txt 
rm: 无法删除"oldboy.txt": 不允许的操作
[root@oldboy ~]# echo 1 >oldboy.txt 
-bash: oldboy.txt: 不允许的操作
[root@oldboy ~]# echo 1 >>oldboy.txt 
[root@oldboy ~]# echo 1 >>oldboy.txt 
[root@oldboy ~]# echo 1 >>oldboy.txt 
[root@oldboy ~]# echo 1 >>oldboy.txt 
[root@oldboy ~]# cat oldboy.txt
1
1
1
1
[root@oldboy ~]# chattr -a oldboy.txt

企业中用途:保护关键文件,防止被非法写入

[root@oldboy bin]# chattr -i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
[root@oldboy bin]# lsattr  /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers

2. Linux系统权限。

2.1 基础权限介绍

  • 基础权限 共9位
    rw- r-- r–

1)3位一组,

2)前3位,用户位(owner),中三位为用户组位(group),后三位为其他用户位(others)
3)

r read 可读的权限 用数字4来表示,三位中的首位。

w write 可写的权限 用数字2来表示,三位中的中间位

x execute 可执行的权限 用数字1来表示,三位中的最后位

- 没有权限

2.2 画图讲解

在这里插入图片描述

2.3 文件和目录权限细节总结

1)针对【文件】

r 可以读取文件内容(block里)的权限。

w 可以增加、修改、删除文件内容(block里)的权限。

有没有删除文件本身的权限呢???

【删除文件的权限和文件本身属性无关】

x 可以执行文件

条件:

a.本身可执行b.配合rc.root不受r的控制

- 没有权限

Linux系统中的权限对于文件和目录来说,是有一定区别的

下面先列举下普通文件对应的权限重要知识。

  1. 可读r:表示具有读取、浏览文件内容(即读取文件实体block)的权限。

  2. 可写w:表示具有新增、修改、删除文件内容的权限。

  3. 可执行x:表示具有执行文件的权限。

其中,对于可读r,这里有两点需要说明:

  • 如果没有可读r的配合,那么使用vim编辑文件时会提示无法编辑(但可强制编辑覆盖文件),可以使用echo等命令进行重定向或追加内容到文件;
  • 删除、移动或创建文件等的权限是受父目录(上一级目录)的权限控制的

对于可执行x,需要注意以下3点。

  • 首先文件的本身要能够执行(命令或脚本)。
  • 如果是普通用户,同时还需要具备可读r的权限才能执行文件。
  • 而root用户只要有可执行x的权限就能执行文件。

针对目录对应读、写、执行权限的详细说明
Linux系统中目录的权限和文件有一些细微区别

下面是目录对应的权限重要知识。

  1. 可读r:表示具有浏览目录下面文件及子目录名的权限,例如,可执行ls dir命令查看目录下的内容。但是如果没有可执行x的配合,则不能切换到指定目录里,即无法执行cd dir命令。

  2. 可写w:表示具有增加、删除或修改目录内文件的权限。但是,如果没有可执行x的配合,即使有w权限,也无法删除或创建文件。

  3. 可执行x:表示具有进入目录的权限。例如可以执行cd dir命令切到目录下,但是无法列表目录下的文件及子目录。

2.4 建环境测试

Linux系统9位基础权限测试环境下的用户角色需求规划
incahome 家组
oldboy 家庭男主人,用来代表用户(User)角色,是文件的所有者
oldgirl 女主人(和所有者oldboy属于相同组,oldboy的家人)用来代表用户组incahome的角色
其他人 test 其他(others)人,用来代表其他用户角色

实践:

[root@oldboy ~]# groupadd incahome
[root@oldboy ~]# useradd oldboy -g incahome
[root@oldboy ~]# useradd oldgirl -g incahome
[root@oldboy ~]# id oldboy
uid=5023(oldboy) gid=5023(incahome)=5023(incahome)
[root@oldboy ~]# id oldgirl
uid=5024(oldgirl) gid=5023(incahome)=5023(incahome)
[root@oldboy ~]# useradd test

开启四个窗口,依次调整为如下用户登录:root,oldboy,oldgirl,test

root窗口:

[root@oldboy ~]# mkdir /oldboy -p
[root@oldboy ~]# cd /oldboy/
[root@oldboy oldboy]# echo "echo 'I am 35.'" >test.sh
[root@oldboy oldboy]# cat test.sh
echo 'I am 35.'
[root@oldboy oldboy]# ls -l test.sh 
-rw-r--r--. 1 root root 16 520 12:43 test.sh

测试得出结论;

设置新的用户和组

[root@oldboy oldboy]# chown oldboy.incahome test.sh 
[root@oldboy oldboy]# ls -l
总用量 4
-rw-r--r--. 1 oldboy incahome 16 520 12:43 test.sh

调整权限:

[root@oldboy oldboy]# chmod 775 test.sh 
[root@oldboy oldboy]# ls -l
总用量 4
-rwxrwxr-x. 1 oldboy incahome 22 520 12:52 test.sh[root@oldboy /]# chown oldboy.incahome /oldboy/
[root@oldboy /]# ls -ld /oldboy/
drwxr-xr-x. 2 oldboy incahome 21 520 12:45 /oldboy/[root@oldboy /]# chmod 761 /oldboy/
[root@oldboy /]# ls -ld /oldboy/
drwxrw---x. 2 oldboy incahome 30 520 13:50 /oldboy/

=权限设置

  1. 数字权限
r     4
w   2
x    1\-    0字符权限 rwx r-x r-x   数字权限 755
字符权限 rwx rw- --x   数字权限 761
  1. 字符权限
字符权限 rwxr-xr-x.  数字权限 755
字符权限 rw-rw-r--.  数字权限 664
字符权限 rw-r-xr--.  数字权限 654
字符权限 rwxr-xr-x.  数字权限 755
字符权限 rwxr-xrwx.  数字权限 757数字权限 715 字符权限  rwx--xr-x
数字权限 661 字符权限  rw-rw---x
数字权限 113 字符权限  --x--x-wx
数字权限 274 字符权限  -w-rwxr--
数字权限 576 字符权限  r-xrwxrw-

设置命令:chmod change mode

-R 递归设置

2.5 数字权限设置

chmod 数字权限 文件

例子:

chmod 755  文件
chmod -R 755 /oldboy

2.6 字符权限设置

(1)用户或用户组的定义

  • u 代表属主用户三位(owner/user)
  • g 代表属组(group)三位
  • o 代表其它用户(other)三位
  • a 或者不写,同时代表ugo属主、属组和其他用户,也就是上面三个用户(或组)的所有(all);

(2)权限定义字母,和前文一致。

  • r 代表读权限,用数字4表示;
  • w 代表写权限,用数字2表示;
  • x 代表执行权限,用数字1表示;
  • 代表没有权限,用数字0表示。

(3)权限增减字符详细定义

  • +:添加权限。
  • -:取消权限。
  • =:取消其他所有权限,然后赋予给定的权限。

权限命令 用户类型 操作字符 权限字符 文件或目录
chmod u g o a + - = r w x - 目录文件

chmod u+x,g-w,o=rwx test.sh

练习:

[root@oldboy /]# cd oldboy/
[root@oldboy oldboy]# ls -l
总用量 8
-rwxr-xr-x. 1 oldboy incahome 22 520 13:50 a
-rwxr-xr-x. 1 oldboy incahome 22 520 13:50 test.sh
[root@oldboy oldboy]# chmod u-x test.sh 
[root@oldboy oldboy]# ls -l
总用量 8
-rwxr-xr-x. 1 oldboy incahome 22 520 13:50 a
-rw-r-xr-x. 1 oldboy incahome 22 520 13:50 test.sh
[root@oldboy oldboy]# chmod g+w test.sh 
[root@oldboy oldboy]# chmod o=--- test.sh 
[root@oldboy oldboy]# ls -l
总用量 8
-rwxr-xr-x. 1 oldboy incahome 22 520 13:50 a
-rw-rwx---. 1 oldboy incahome 22 520 13:50 test.sh
[root@oldboy oldboy]# chmod u=x,g=-,o=rwx test.sh 
[root@oldboy oldboy]# ls -l
总用量 8
-rwxr-xr-x. 1 oldboy incahome 22 520 13:50 a
---x---rwx. 1 oldboy incahome 22 520 13:50 test.sh
[root@oldboy oldboy]# chmod -x test.sh 
[root@oldboy oldboy]# ls -l
总用量 8
-rwxr-xr-x. 1 oldboy incahome 22 520 13:50 a
-------rw-. 1 oldboy incahome 22 520 13:50 test.sh
[root@oldboy oldboy]# ls -l /etc/rc.local 
lrwxrwxrwx. 1 root root 13 57 2021 /etc/rc.local -> rc.d/rc.local
[root@oldboy oldboy]# ls -l /etc/rc.d/rc.local 
-rwxr-xr-x. 1 root root 473 41 2020 /etc/rc.d/rc.local
[root@oldboy oldboy]# chmod +x /etc/rc.d/rc.local 
[root@oldboy oldboy]# chmod -x /etc/rc.d/rc.local 
[root@oldboy oldboy]# ls -l /etc/rc.d/rc.local 
-rw-r--r--. 1 root root 473 41 2020 /etc/rc.d/rc.local
[root@oldboy oldboy]# 
[root@oldboy oldboy]# chmod +x /etc/rc.d/rc.local 
[root@oldboy oldboy]# ls -l /etc/rc.d/rc.local 
-rwxr-xr-x. 1 root root 473 41 2020 /etc/rc.d/rc.local
[root@oldboy oldboy]# chmod a-x /etc/rc.d/rc.local 
[root@oldboy oldboy]# ls -l /etc/rc.d/rc.local 
-rw-r--r--. 1 root root 473 41 2020 /etc/rc.d/rc.local

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

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

相关文章

UE蓝图 入口(FunctionEntry)节点和源码

系列文章目录 UE蓝图 Get节点和源码 UE蓝图 Set节点和源码 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 UE蓝图 入口(FunctionEntry)节点和源码 文章目录 系列文章目录一、FunctionEntry节点功能二、入口节点用法1. 创建函数2. 命名函数3. 定义参数4. 编写函数逻辑5…

Git合并固定分支的某一部分至当前分支

在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 1.批量文件合并 1.1.创建并切换到一个新的临时分支 首先,从要合并的源分支(即要…

C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】

C面向对象程序设计-北京大学-郭炜【课程笔记(四)】 1、this指针1.1、this指针的作用1.2、this指针和静态成员函数 2、静态成员变量和静态成员函数2.1、基本概念2.2、基本概念总结2.3、如何访问静态成员2.4、静态成员变量的使用场景(重要&…

Qt中常见的JS类和函数(一)

相关系列文章 Qt中字符串转换为JS的函数执行 目录 1.引言 2.全局对象(The Global Object) 2.1.值属性(Value Properties) 2.1.1.NaN 2.1.2.Infinity 2.1.3.undefined 2.2.函数属性(Function Properties) 2.2.1.eval(x) 2.2.2.parseInt(string, radix) 2.2.3.parseFl…

浏览器---浏览器/http相关面试题

1.localStorage和sessionStorage 共同点:二者都是以key-value的键值对方式存储在浏览器端,大小大概在5M。 区别: (1)数据有效期不同:sessionStorage仅在当前浏览器窗口关闭之前有效;localStorag…

wps电子表格(xlsx)在excel打开时,多余图形(shapes)的处理

背景: 1. win10, excel 打开 wps 生成的 xlsx文档; 2. 文档中有多余的图形,经检测为shape大类; 3. 文档中可见的图形可以全选后删除; 但是不可见部分仍然存在; 4. vba删除时,可以直接循环删除&#xff…

Eigen:Vector3d 变量初始化遇到的问题

Eigen:Vector3d 变量初始化遇到的问题 2024.2.22 日 ,在使用 Eigen:Vector3d 这个类型的 变量,在类中进行初始化时 遇到了如下问题: 首先在类的声明内部,是不能声明完,再给变量赋值的,不管是 Eigen:Vector…

【 Flutter】安装、运行坑记录

运行demo报错 Exception in thread “main” java.net.ConnectException: Connection timed out: connect原因:网络问题,gradle包未能下载 解决方案:配置android studio代理,重新打开项目,as会自动下载缺失依赖

(done) 如何判断一个矩阵是否可逆?

参考视频:https://www.bilibili.com/video/BV15H4y1y737/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 这个视频里还暗含了一些引理 1.若 AX XB 且 X 和 A,B 同阶可逆,那么 A 和 B 相似。原因&#xff1…

服务器防火墙的应用技术有哪些类型?

随着互联网的发展,网络安全问题更加严峻。服务器防火墙技术作为一种基础的网络安全技术,对于保障我们的网络安全至关重要。本文将介绍服务器防火墙的概念和作用,以及主要的服务器防火墙技术,包括数据包过滤、状态检测、代理服务、…

安卓开发:挑战每天发布一个封装类02--Wav录音封装类AudioChannel 1.0

简介 库名称:AudioChannel 版本:1.0 由于项目需求录音并base64编码存到服务器中,就顺手改装了一个别人的封装类 原封装类地址:Android AudioRecord音频录制wav文件输出 - 简书 (jianshu.com) 描述:此封装类基于AudioRecord实现wav的音频…

Springcloud OpenFeign 的实现(二)

Springcloud OpenFeign 的实现(一) 一、Feign request/response 压缩 您可以考虑为您的外部请求启用请求或响应GZIP压缩。您可以通过启用以下属性之一来完成此操作: feign.compression.request.enabledtrue feign.compression.response.en…

WEB相关工具(wget、curl、ab)

目录 一、wget 1、wget基本语法 2、wget帮助的更多选项 二、curl 1、curl基本语法 2、curl命令下载 3、curl命令基本用法 3.1 curl伪装 3.2 提取状态码 3.3 提取本地IP地址 3.4 提取远端服务器IP地址 3.5 提取本地端口 3.6 提取远端服务器端口 三、压力测试工具…

K8S NFS持久存储配置

K8S NFS持久存储配置 在Kubernetes(K8S)中配置NFS(Network File System)作为持久存储通常涉及以下步骤: 1. 准备NFS服务器 首先,你需要一个运行NFS服务的服务器。这可以是Kubernetes集群中的一个节点&am…

通过Redis增减库存避坑

问题: 先执行get获取值,判断符合条件再执行incr、decr操作。在临界缓存失效的情况下,会默认赋值当前key为永不过期的0,再执行加减法,导致程序异常。 推荐解决方案: 1、限制接口频率:先incr&…

Unity xLua开发环境搭建与基础进阶

Unity是一款非常流行的游戏开发引擎,而xLua是一个为Unity开发者提供的Lua框架,可以让开发者使用Lua语言来进行游戏开发。在本文中,我们将介绍如何搭建Unity xLua开发环境,并进行基础进阶的学习。 环境搭建 首先,我们需…

高维数据的中介效应【中介分析】《R包:HIMA》

允许基于高级中介筛选和惩罚回归技术来估计和测试高维中介效应 Hima包浏览 高维中介示意图 图1. 在暴露和结果之间有高维中介的情况 本包的作用 在确定独立筛选和极小极大凹惩罚技术的基础上,采用联合显著性检验方法对调解效果进行检验。使用蒙特卡罗模拟研究来展…

Python爬虫实战入门:爬取360模拟翻译(仅实验)

文章目录 需求所需第三方库requests 实战教程打开网站抓包添加请求头等信息发送请求,解析数据修改翻译内容以及实现中英互译 完整代码 需求 目标网站:https://fanyi.so.com/# 要求:爬取360翻译数据包,实现翻译功能 所需第三方库 …

2024什么样的大路灯比较好?5大爆款落地灯推荐必看!

大路灯作为一个可以照明,让室内环境光线更加舒适的电器,能够减少用眼时不良光线带来的疲劳感,营造接近自然光的舒适光,受到很多家长的关注! 但现在市面有很多不良商家推出的大路灯虚标参数,实际护眼性能很低…

线性代数:向量空间

目录 向量空间 Ax 0 的解空间S Ax b 的全体解向量所构成集合不是向量空间 基、维数、子空间 自然基与坐标 例1 例2 向量空间 Ax 0 的解空间S Ax b 的全体解向量所构成集合不是向量空间 基、维数、子空间 自然基与坐标 例1 例2