Linux(文件特殊属性 + FACL 图片+大白话)

后面也会持续更新,学到新东西会在其中补充。

建议按顺序食用,欢迎批评或者交流!

缺什么东西欢迎评论!我都会及时修改的!

在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频

王晓春老师的个人空间-王晓春老师个人主页-哔哩哔哩视频

数据库安装的其中一个步骤

MySQL :: Download MySQL Community Server (Archived Versions)

实验:

[root@study ~]# ll
total 393736
-rw-------. 1 root root      1374 Oct 31 02:36 anaconda-ks.cfg
-rw-r--r--. 1 root root 403177622 Nov 11 04:27 mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
[root@study ~]# tar xvf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

有些所有者和属组是缺失的

[root@study ~]# ll
total 393736
-rw-------.  1 root root      1374 Oct 31 02:36 anaconda-ks.cfg
drwxr-xr-x. 13 root root       191 Nov 11 04:29 mysql-5.6.46-linux-glibc2.12-x86_64
-rw-r--r--.  1 root root 403177622 Nov 11 04:27 mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
[root@study ~]# ll mysql-5.6.46-linux-glibc2.12-x86_64
total 248
...
-rw-r--r--.  1 7161 31415 221739 Sep 27  2019 LICENSE
...
-rw-r--r--.  1 7161 31415    587 Sep 27  2019 README
...

文件没有主人会导致出现问题

程序的启动需要配置一个系统用户

[root@study ~]# useradd -r -s /sbin/nologin==/bin/false -u 336 mysql

将解压的文件夹放到/usr/local/

[root@study ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 /usr/local/
[root@study ~]# ll /usr/local/
total 0
...
drwxr-xr-x. 13 root root 191 Nov 11 04:29 mysql-5.6.46-linux-glibc2.12-x86_64
...

创建软连接

[root@study ~]# ln -s /usr/local/mysql-5.6.46-linux-glibc2.12-x86_64 /usr/local/mysql
[root@study ~]# ll /usr/local
total 0
lrwxrwxrwx.  1 root root  46 Nov 11 04:41 mysql -> /usr/local/mysql-5.6.46-linux-glibc2.12-x86_64
drwxr-xr-x. 13 root root 191 Nov 11 04:41 mysql-5.6.46-linux-glibc2.12-x86_64

将所有文件的属主和属组改为mysql

[root@study ~]# chown -R mysql.mysql /usr/local/mysql 不加/改的是软连接
[root@study ~]# chown -R mysql.mysql /usr/local/mysql/ 加/改的是文件夹内部
[root@study ~]# ll /usr/local/mysql/
total 248
drwxr-xr-x.  2 mysql mysql   4096 Nov 11 04:40 bin
...

设定文件特殊属性

不能删除,改名,更改
chattr +i

只能追加内容
chattr +a

显示特定属性
lsattr

charttr +i

[root@study data]# cp /etc/fstab f1.txt
[root@study data]# ll
total 4
-rw-r--r--. 1 root root 465 Nov 11 08:18 f1.txt
[root@study data]# chattr +i f1.txt
[root@study data]# rm -rf f1.txt
rm: cannot remove ‘f1.txt’: Operation not permitted
[root@study data]# echo 21312321 > f1.txt
-bash: f1.txt: Permission denied
[root@study data]# lsattr f1.txt
----i----------- ./f1.txt

 charttr -i

[root@study data]# chattr -i f1.txt
[root@study data]# lsattr f1.txt
---------------- f1.txt

charttr +a

[root@study data]# chattr +a f1.txt
[root@study data]# lsattr f1.txt
-----a---------- f1.txt
[root@study data]# echo 21321321 > f1.txt
-bash: f1.txt: Operation not permitted
[root@study data]# echo newline >> f1.txt

charttr -a

[root@study data]# chattr -a f1.txt
[root@study data]# lsattr f1.txt
---------------- f1.txt

访问控制列表

环境说明:假如文件属性不变这个时候wang 用户和 test 用户访问这个文件想要不同的权限也就是除了文件所属者 文件所属组 其他人 3类人的其他人 

ACL权限功能

setfacl 可以设置ACL权限

getfacl 可查看设置的ACL权限

[root@study data]# ll
total 4
-rw-r--r--. 1 root root 158 Nov 11 08:30 f1.txt
[root@study data]# su wang
[wang@study data]$ cat f1.txt
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

setfacl -m不给wang用户权限

 + 代表设置了acl权限

[root@study data]# setfacl -m u:wang:0 f1.txt
[root@study data]# ll f1.txt
-rw-r--r--+ 1 root root 158 Nov 11 08:30 f1.txt
[root@study data]# getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw-
user:wang:---
group::r--
mask::r--
other::r--

[root@study data]# su wang
[wang@study data]$ cat f1.txt
cat: f1.txt: Permission denied

 setfacl -m给test用户rw

[root@study data]# setfacl -m u:test:rw f1.txt
[root@study data]# getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw-
user:wang:---
user:test:rw-
group::r--
mask::rw-
other::r--

[root@study data]# su test
[test@study data]$ cat f1.txt
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[test@study data]$ echo 21312 >>  f1.txt
[test@study data]$ cat f1.txt
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
21312

 setfacl -x 指定删除

[root@study data]# setfacl -x u:wang f1.txt
[root@study data]# setfacl -x u:test f1.txt
[root@study data]# getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--

 setfacl -b 全部删除

[root@study data]# setfacl -b f1.txt
[root@study data]# ll
total 4
-rw-r--r--. 1 root root 164 Nov 11 08:57 f1.txt

 setfacl -Rm 文件夹 递归赋值

[root@study data]# mkdir dir
[root@study data]# cp /etc/hosts dir/
[root@study data]# setfacl -Rm u:wang:rwx dir/

[root@study data]# getfacl dir
# file: dir
# owner: root
# group: root
user::rwx
user:wang:rwx
group::r-x
mask::rwx
other::r-x

[root@study data]# getfacl dir/hosts
# file: dir/hosts
# owner: root
# group: root
user::rw-
user:wang:rwx
group::r--
mask::rwx
other::r--

 setfacl -Rb 文件夹 递归删除

[root@study data]# setfacl -Rb dir/
[root@study data]# getfacl dir
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

 acl 比chmod 安全 acl 还可以还原权限 chmod 和 acl不冲突!

acl 对other不起作用 

mask 权限

影响所有者和other的之外的人和组的最大权限

对于acl权限设置的最高权限

举例

[root@study data]# touch f1.txt
[root@study data]# setfacl -m u:wang:rwx f1.txt
[root@study data]# setfacl -m g:wang:rwx f1.txt
[root@study data]# getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw-
user:wang:rwx
group::r--
group:wang:rwx
mask::rwx
other::r--

还需要注意的是有了+号就是acl 并且mask 代表 g

修改mask权限

[root@study data]# chmod g=rw f1.txt
[root@study data]# getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw-
user:wang:rwx                   #effective:rw-
group::r--
group:wang:rwx                  #effective:rw-
mask::rw-

 #effective:rw- 就是限高杆

 备份和还原ACL

 运用到之前的赋值

之前
[root@study data]# chmod -R mysql.mysql /usr/local/mysql/
之后
[root@study data]# setfacl -Rm u:mysql:rwx /usr/local/mysql/
使用acl可以撤销
[root@study data]# setfacl -Rb /usr/local/mysql/

chmod 执行权限被去掉了怎么办!(曲线救国)

环境配置

[root@study data]# which chmod
/usr/bin/chmod
[root@study data]# ll /usr/bin/chmod
-rwxr-xr-x. 1 root root 58592 Aug 20  2019 /usr/bin/chmod
[root@study data]# chmod -x /usr/bin/chmod
[root@study data]# ll /usr/bin/chmod
-rw-r--r--. 1 root root 58592 Aug 20  2019 /usr/bin/chmod
[root@study data]# touch f2.txt
[root@study data]# chmod a=rwx f2.txt
-bash: /usr/bin/chmod: Permission denied

 解决方案

[root@study data]# setfacl -m u:root:rwx /usr/bin/chmod
[root@study data]# chmod +x /usr/bin/chmod
[root@study data]# ll /usr/bin/chmod
-rwxrwxr-x+ 1 root root 58592 Aug 20  2019 /usr/bin/chmod
[root@study data]# setfacl -b  /usr/bin/chmod
[root@study data]# ll  /usr/bin/chmod
-rwxr--r-x. 1 root root 58592 Aug 20  2019 /usr/bin/chmod
[root@study data]# chmod g+x  /usr/bin/chmod
[root@study data]# ll  /usr/bin/chmod
-rwxr-xr-x. 1 root root 58592 Aug 20  2019 /usr/bin/chmod

参考文献

4文件特殊属性和FACL实现灵活的权限控制_哔哩哔哩_bilibili

总结

所有命令都需要反复敲来实验来记忆,本人基本上是个人理解加参考其他大佬的肯定有很多问题欢迎指正,我会及时修改。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

json转excel,读取json文件写入到excel中【rust语言】

一、rust代码 将json文件写入到 excel中。(保持json :key原始顺序) use indexmap::IndexMap; use serde::Deserialize; use serde_json::{Value, from_str}; use std::error::Error; use std::io::{self, Write}; use std::path::{Path}; u…

理想火车站定位(字节青训)

题目 小F是A市的市长,正在计划在A市新建一个火车站以方便市民的日常出行。市区内的街道布局十分规整,形成网格状。从一个位置[x1, y1]到另一个位置[x2, y2]的距离计算方法为 |x1 - x2| |y1 - y2|,即曼哈顿距离。 在初步考察后,…

5位机械工程师如何共享一台工作站的算力?

在现代化的工程领域中,算力已成为推动创新与技术进步的关键因素之一。对于机械工程师而言,强大的计算资源意味着能够更快地进行复杂设计、模拟分析以及优化工作,从而明显提升工作效率与项目质量。然而,资源总是有限的,…

使用微信云开发,实现链接激活微信小程序(微信内部和外部H5访问)

首先小程序项目开发,需得支持云开发如何开通云开发?(网上教程很多,也很全面,这里仅带过) 配置云函数在项目根目录找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本…

NVM 介绍及使用指南

在日常的开发工作中,我们往往会遇到需要在同一台机器上同时管理多个版本的 Node.js 的情况。为了解决这个问题,我一个同事推荐了NVM(Node Version Manager)。NVM 是一个用于管理 Node.js 版本的工具,可以方便地在不同的…

vscode 全局搜索的用法:

搜索栏最右边功能是区分大小写,全字匹配(比如搜索abc,就不会显示abcd或者ab这些内容),使用正则表达式。变成高亮就是开启对应功能。包含的文件:这栏里如果最右边高亮填入带路径的文件,指的是在文…

如何从 Nutanix 迁移至 SmartX 超融合?解读 4 类迁移方案和 2 例迁移实践

随着 Nutanix(路坦力)将大陆区域的销售和部分维保工作交由联想负责,不少用户也在寻求 Nutanix 的替代方案。现阶段是否有必要换掉 Nutanix?有哪些成熟的国产替代方案?这些方案在性能和功能上是否具备与 Nutanix 同等的…

C++常见概念问题(3)

C常见概念问题(3) 1. 构造函数的初始化顺序 基类构造函数:在派生类的构造函数中,基类的构造函数在派生类构造函数体执行之前调用。 成员变量初始化:类中的成员变量会按照其在类中声明的顺序进行初始化,而…

「QT」几何数据类 之 QVector2D 二维向量类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

运维智能化转型:AIOps引领IT运维新浪潮

1. AIOps是什么? AIOps(Artificial Intelligence for IT Operations),即人工智能在IT运维中的应用,通过机器学习技术处理运维数据(如日志、监控信息和应用数据),解决传统自动化运维…

C++练习 二维数组的应用

1&#xff09;超女有3个小组&#xff0c;每组有4名选手&#xff0c;请提供一个界面&#xff0c;输入每个超女的体重&#xff0c;然后&#xff0c;计算出每组的超女的平均体重和全部超女的平均体重。 #include <iostream> using namespace std;int main() {float sum1 0…

Vue3安装、创建到使用

vue安装 npm install vuenext # 全局安装 vue-cli npm install -g vue/cli #更新插件 项目中运行 vue upgrade --nextvue create 命令 vue create [options] <app-name> options 选项可以是&#xff1a; -p, --preset <presetName>&#xff1a; 忽略提示符并使用已…

JavaWeb:文件上传1

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

第2章2.3立项【硬件产品立项的核心内容】

硬件产品立项的核心内容 2.3 硬件产品立项的核心内容2.3.1 第一步&#xff1a;市场趋势判断2.3.2 第二步&#xff1a;竞争对手分析1.竞争对手识别2.根据竞争对手分析制定策略 2.3.3 第三步&#xff1a;客户分析2.3.4 第四步&#xff1a;产品定义2.3.5 第五步&#xff1a;开发执…

视频播放相关的杂记

基于QT FFMPEG设计一款 RTMP协议推流、视频录制软件 实现的功能&#xff1a; &#xff08;1&#xff09;将摄像头视频流 麦克风音频流合并&#xff0c;并推到流媒体服务器 &#xff08;2&#xff09;将摄像头视频流 麦克风音频流保存到本地磁盘 基于QtFFMPEG设计一款RTM…

oracle如何创建两个数据库,以及如何用navicat连接,监听、数据泵

项目背景oracle11g, 已经非常老了&#xff0c; 2017年的左右&#xff1b;谨慎参考 W11直接搜索就行 dbca唯一需要注意的地方就是一定一定一定要以管理身份运行&#xff0c;否则会提示各种因为文件权限问题报的错误 然后弹出程序提示&#xff0c;图形化开始操作了&#xff1b; …

LeetCode 509.斐波那契数

动态规划思想 五步骤&#xff1a; 1.确定dp[i]含义 2.递推公式 3.初始化 4.遍历顺序 5.打印dp数组 利用状态压缩&#xff0c;简化空间复杂度。在原代码中&#xff0c;dp 数组保存了所有状态&#xff0c;但实际上斐波那契数列的计算只需要前两个状态。因此&#xff0c;我们…

Qml 中的那些坑(七)---ComboBox嵌入Popup时,滚动内容超过其可见区域不会关闭ComboBox弹窗

【写在前面】 最近在写信息提交 ( 表单 ) 的窗口时发现一个奇怪的 BUG&#xff1a; 其代码如下&#xff1a; import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Window 2.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")B…

Softing工业将在纽伦堡SPS 2024上展示Ethernet-APL现场交换机

今年&#xff0c;Softing工业将在纽伦堡SPS贸易展览会上展示aplSwitch Field —— 一款先进的过程自动化解决方案。这款16端口以太网高级物理层&#xff08;APL&#xff09;现场交换机的防护等级高达IP30&#xff0c;可提供从应用到现场级别的无缝以太网连接&#xff0c;专为Ex…

Local Transfer 致力于更加便捷地共享传输文件

软件主页&#xff1a;https://illusionna.github.io/LocalTransfer