控制对文件访问

news2024/11/29 6:28:48

控制对文件访问

在这里插入图片描述

Linux文件权限

权限文件影响目录影响
r读取文件内容列出目录内容
w更改文件内容创建删除目录文件
x作为命令执行目录可以变成当前工作目录

命令行管理文件系统权限

更改文件和目录权限

chmod

chmod WhoWhatWhich file|directory
  • Who (u,g,o,a代表用户,组,其他,全部)
  • What(+ - = 代表添加,删除,设置)
  • Which(r,w,x 代表读写执行)
#对file.txt 中组和其他删除读取权限
[root@servera ~]# ll
total 4
-rw-------. 1 root root 1078 Jul 15 10:29 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Jul 18 02:51 file.txt
[root@servera ~]# chmod go-r file.txt
[root@servera ~]# ll
total 4
-rw-------. 1 root root 1078 Jul 15 10:29 anaconda-ks.cfg
-rw-------. 1 root root    0 Jul 18 02:51 file.txt

#对file.txt添加执行权限
[root@servera ~]# chmod a+x file.txt
[root@servera ~]# ll
total 4
-rw-------. 1 root root 1078 Jul 15 10:29 anaconda-ks.cfg
-rwx--x--x. 1 root root    0 Jul 18 02:51 file.txt

通过数值更改权限

chmod ### file|dir

'#'字符代表一个数字,每个数字代表一个访问级别的权限:用户,组,其他

权限对应数字
r4
w2
x1
#对用户设置读写权限,对组设置读取权限,对file其他设置读取权限
[root@servera ~]# chmod 644 file
[root@servera ~]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 18 02:59 file

#对用户设置读写执行权限,对组设置读执行权限,对file其他不设权限
[root@servera ~]# chmod 750 file
[root@servera ~]# ll
total 0
-rwxr-x---. 1 root root 0 Jul 18 02:59 file

更改文件和目录的用户和组的所有权

chown 更改权限

chown -R递归更改整个目录树的所有权

#更改file所有权为usr1
[root@servera ~]# ll
total 0
-rwxr-x---. 1 root root 0 Jul 18 02:59 file
[root@servera ~]# chown usr1 file
[root@servera ~]# ll
total 0
-rwxr-x---. 1 usr1 root 0 Jul 18 02:59 file

#将test_dir所有文件所有权变成usr1

[root@servera ~]# ll  test_dir/
total 0
-rw-r--r--. 1 root root 0 Jul 18 03:09 a
-rw-r--r--. 1 root root 0 Jul 18 03:09 b
-rw-r--r--. 1 root root 0 Jul 18 03:09 c
-rw-r--r--. 1 root root 0 Jul 18 03:09 d
[root@servera ~]# chown -R usr1 test_dir/
[root@servera ~]# ll test_dir/
total 0
-rw-r--r--. 1 usr1 root 0 Jul 18 03:09 a
-rw-r--r--. 1 usr1 root 0 Jul 18 03:09 b
-rw-r--r--. 1 usr1 root 0 Jul 18 03:09 c
-rw-r--r--. 1 usr1 root 0 Jul 18 03:09 d

更改组和用户


[root@servera ~]# ll | grep test_dir
drwxr-xr-x. 2 usr1 root 42 Jul 18 03:09 test_dir

[root@servera ~]# chown :admins test_dir
[root@servera ~]# ll | grep test_dir
drwxr-xr-x. 2 usr1 admins 42 Jul 18 03:09 test_dir

[root@servera ~]# chown root:root test_dir
[root@servera ~]# ll | grep test_dir
drwxr-xr-x. 2 root root 42 Jul 18 03:09 test_dir

管理默认权限和文件访问

特殊权限对文件影响对目录影响
u+s以拥有文件的用户身份,而不是运行文件的用户身份来执行文件
g+s以拥有文件的组身份执行文件为目录最新创建的文件将其组匹配所有者设置与目录的组所有者相匹配
o+t无影响对目录具有写入访问权限的用户仅可以删除拥有的文件,无法删除或强制保存到其他用户所拥有的文件
[root@servera ~]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 33424 Feb  7  2022 /usr/bin/passwd


在长列表里,通过小写s辨别setuid权限,该处通常x,如果所有者不具备执行权限由S取代

[root@servera ~]# ls -ld /run/log/journal
drwxr-sr-x. 3 root systemd-journal 60 Jul 15 10:54 /run/log/journal


对某目录的书权限setgid表示在该目录中创建的文件将继承该目录的组的所有权,而不是继承创建用户

设置特殊权限

setuid=u+s  4
setgid=g+s  2
sticky=o+t  1

#在dir目录添加setgid位
[root@servera ~]# chmod g+s dir/
[root@servera ~]# ll
total 0
drwxr-sr-x. 2 root root 6 Jul 18 05:02 dir

#为dir设置setgid位并为用户和组添加读写执行权限 其他不具备权限
[root@servera ~]# chmod 2770 dir/
[root@servera ~]# ll
total 0
drwxrws---. 2 root root 6 Jul 18 05:02 dir

默认文件权限

创建新目录,系统首先分配八进制权限0777(drwxrwxrwx)

创建常规文件,系统分配八进制权限0666(-rw-rw-rw-)

shell会话还会设置一个umask,以进一步限制初始设置权限,这是一个8位掩码,用于清除由该进程创建的新文件和目录权限。如果在umask设置一个位,则对应文件的权限将被清除。

[root@servera ~]# umask
0022

Bash shell用户系统默认umask值在/etc/profile /etc/bashrc

[root@servera ~]# umask 
0022
[root@servera ~]# touch default.txt
[root@servera ~]# ls -l default.txt 
-rw-r--r--. 1 root root 0 Jul 18 05:20 default.txt
[root@servera ~]# mkdir default
[root@servera ~]# ls -ld default
drwxr-xr-x. 2 root root 6 Jul 18 05:20 default

通过将umask值设置为0,其他文件权限将读取改为读写,其他目录权限将从读取和执行改为读取,写入和执行。

[root@servera ~]# umask 0
[root@servera ~]# touch zero.txt
[root@servera ~]# ls -l zero.txt 
-rw-rw-rw-. 1 root root 0 Jul 18 05:23 zero.txt
[root@servera ~]# mkdir zero
[root@servera ~]# ls -ld zero
drwxrwxrwx. 2 root root 6 Jul 18 05:23 zero

要屏蔽其他所有文件的目录权限umask设置为007

[root@servera ~]# umask 007
[root@servera ~]# touch seven.txt
[root@servera ~]# ls -l seven.txt 
-rw-rw----. 1 root root 0 Jul 18 05:24 seven.txt
[root@servera ~]# mkdir seven
[root@servera ~]# ls -ld seven
drwxrwx---. 2 root root 6 Jul 18 05:25 seven

umask为027可确保新文件的用户具有读写权限,组具有读取权限。新目录的组具有读取和写入权限,而其他则没有访问权限。

[root@servera ~]# umask 027
[root@servera ~]# touch two-seven.txt
[root@servera ~]# ls -l two-seven.txt 
-rw-r-----. 1 root root 0 Jul 18 05:33 two-seven.txt
[root@servera ~]# mkdir two-seven
[root@servera ~]# ls -ld two-seven
drwxr-x---. 2 root root 6 Jul 18 05:33 two-seven

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

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

相关文章

抖音seo源码搭建,抖音矩阵系统源码分发,抖音矩阵账号管理系统

前言: 抖音seo源码,抖音矩阵系统源码搭建,抖音矩阵同步分发。抖音seo源码部署是需要对接到这些正规接口再来做开发的,目前账号矩阵程序开发的功能,围绕一键管理多个账号,做到定时投放,关键词自动…

C# 提示:无法加载 DLL“XXX.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

今天再调试程序时发现程序再笔记本上运行正常,然而拷贝到客户主机上之后出现了(System.DllNotFoundException: 无法加载 DLL“msc.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。)的问题,经过再三调试, …

python编程语言之数据类型

python数据类型 https://draw.io/ 画图 str 序列操作 字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引、下标)访问它们…

6.3.3 利用Wireshark进行协议分析(三)Wireshark基本操作

6.3.3 利用Wireshark进行协议分析(三) 一、启动Wireshark界面 如图 从上到下依次是 标题栏菜单栏工具栏过滤栏捕获窗口,在该区域用户可以选择网络接口,设置捕获选项 Wireshark允许用户将捕获到的数据包信息保存在指定的文件中…

ESD门禁闸机管理系统如何适应不同场景及需求

ESD门禁闸机是一种用于控制进出门禁区域的设备。ESD是英文Electrostatic Discharge的缩写,意指静电放电。该门禁闸机主要用于防止静电对敏感设备和产品造成的损害。 ESD门禁闸机具有以下功能和特点: 1. 静电防护:ESD门禁闸机使用特殊的材料…

前端Vue uni-app App/小程序/H5 通用tree树形结构图

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现…

【源码解析】一张图了解spring内部原理

从Spring框架流程上来看主要包含的是Bean对象的配置,读取配置,Bean工厂管理,构建对象。

Panabit iXCache后台命令执行

在我们短促而又漫长的一生中,我们在苦苦地寻找人生的幸福,可幸福往往又与我们失之交臂。当我们为此而耗尽宝贵的青春年华,皱纹也悄悄地爬上了眼角的时候,我们或许才能稍稍懂得生活实际上意味着什么。 漏洞描述 Panabit iXCache指…

三、图形化界面工具DataGrip

一、DataGrip软件下载 1、官网下载 官网地址:https://www.jetbrains.com/zh-cn/ 拉到主页面的最下面: 2、下载DataGrip软件 二、软件安装 1、双击安装包 2、进入安装界面,点击【Next】 3、选择安装路径,之后点击【Next】 尽量不…

uni-app 小程序 uni.showToast字数超过两行自动省略显示不全问题

如图: uni.showToast({title: res.data.msg,icon: "none" });uni.showToast() 显示消息提示框,显示图标时, title 文本最多显示 7 个汉字长度,在不显示图标的情况下,大于两行不显示。 可以选择更换为使用…

霍格沃兹emp.dll文件丢失要怎么处理?快速修复emp.dll的方法

最近有朋友反映在他们玩霍格沃兹的时候,突然弹出一个emp.dll文件丢失的窗口,然后就玩不了游戏了,那么面对这种情况要怎么去解决呢?其实解决方法还是有挺多的,下面我们一起来了解一下吧。 一.emp.dll文件有什么作用 e…

(学习笔记-TCP连接断开)TCP四次挥手

TCP四次挥手过程 TCP断开连接是通过四次挥手实现的,双方都可以主动断开连接,断开连接后主机中的资源将被释放,四次挥手的过程如下: 客户端打算关闭连接时,会发送一个TCP首部FIN标志位为1的报文,也就是FIN报…

在gitlab中生成增量代码质量分析报告

作为管理者,你是否想在组员创建merge request时,生成代码质量分析报告,今天它来了: .gitlab-ci.yml: image: python:3.11flake8:allow_failure: true#rules: 这里不能加rules,否则无法正确生成质量报告# …

05-1_Qt 5.9 C++开发指南_Model/View结构基础(基本原理;数据模型;试图组件;代理)

Model/View(模型/视图) 结构是 Qt 中用界面组件显示与编辑数据的一种结构,视图 (View)是显示和编辑数据的界面组件,模型 (Model) 是视图与原始数据之间的接口。Model/View 结构的典型应用是在数据库应用程序中,例如数据库中的一个数据表可以在…

如何使用ArcGIS Pro制作一张天府机场区位图

ArcGIS系列产品的重要功能之一就是制图,相较于ArcGIS, ArcGIS Pro在制图这块有很大的改进,用户可以连接上ArcGIS Online丰富的在线资源,感受到ArcGIS Pro强大的制图能力,但是在开始的时候可能会有些不习惯,因为在操作上…

C#在工业自动化领域的应用前景如何?

在2021年,C#与工业自动化已经开始结合,并且这种趋势有望在未来继续发展。C#是一种功能强大的编程语言,其面向对象的特性、跨平台支持以及丰富的类库和工具,使其成为在工业自动化领域应用的有力工具。 我这里刚好有嵌入式、单片机…

【每天40分钟,我们一起用50天刷完 (剑指Offer)】第三十天 30/50 连续子数组的最大和【dp】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

断点续传技术在工业边缘网关HiWoo Box中的价值

引言 工业边缘计算是近年来迅速发展的一项重要技术,它将数据处理和分析功能推向了设备和传感器的边缘,从而大大提高了工业自动化系统的效率和可靠性。然而,工业现场环境复杂多变,网络稳定性不足常常导致数据传输中断,…

TPS61021A 具有 0.5V 超低输入电压的3A升压转换器

1 特性 1 • 输入电压范围:0.5V至4.4V • 启动时的最小输入电压为0.9V • 可设置的输出电压范围:1.8V到4.0V • 效率高达91%(VIN2.4V、VOUT3.3V 且IOUT 1.5A 时) • 2.0MHz 开关频率 • IOUT > 1.5A,VOUT 3.…

Java 的异常体系

一个思维导图回顾一下 Java 的异常体系。 ​ 上面的图片没有罗列出所有的异常类型,但也基本概括了 Java 异常的继承体系。所有的异常类都继承自 Throwable ,Throwable 有两个直接子类 Error 和 Exception 。 Exception 一般指可以/应该捕获和处理的异常…