Linux chmod命令详解,Linux修改文件权限

news2024/11/18 19:57:42

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者

chmod 命令

  • 一、常用操作
    • 1. 字母形式
    • 2. 数字形式
    • 3. 递归设置
  • 二、文件权限解读
  • 三、数字权限
  • 四、特殊的root权限
  • 五、SUID详解
    • 1. 设置SUID
    • 2. 取消SUID
    • 3. SUID提权

作用:修改文件权限

参数:

  • u      表示文件拥有者
  • g      表示文件所属的用户组
  • o      表示其他用户
  • a      a = u+g+o
  • +     增加权限
  • -     减少权限
  • =     设置权限
  • r      可读取
  • w      可写入
  • x      可执行
  • -R     递归修改

一、常用操作

chmod u+r a.txt		# 所属用户增加可读权限
chmod u-r a.txt		# 所属用户减少可读权限
chmod u=r a.txt		# 所属用户设置可读权限
chmod a+r a.txt		# 给所有人增加可读权限
chmod u+x,g+w a.txt		# 同时修改多个权限
chmod ug+x a.txt		# 同时修改多个权限

chmod 777 a.txt		# 给所有人增加读、写、执行权限

chmod -R 777 目录	# 修改目录及目录下所有文件的权限

1. 字母形式

1)给文件的所属用户增加执行权限

chmod u+x a.txt

2)给文件的所属用户减少执行权限

chmod u-x a.txt

3)给文件的所属用户设置读写权限

chmod u=rw a.txt

4)给文件的所属组增加执行权限

chmod g+x a.txt

5)给文件的其他用户增加执行权限

chmod o+x a.txt

6)同时修改多个权限,用逗号间隔

chmod u+x,g+w a.txt

7)给所属用户和所属组同时增加可执行权限

chmod ug+x a.txt

8)同时给多个文件修改权限

chmod u+x a.txt b.txt

9)给所有人都增加可执行权限

chmod a+x a.txt

2. 数字形式

1)给所有人都增加读、写、执行权限

chmod 777 a.txt

3. 递归设置

修改目录的权限后,目录中的文件权限并不会改变。

在这里插入图片描述

想要把目录和目录下的所有文件都修改权限,可以加上 -R 参数

chmod -R 777 目录

在这里插入图片描述

二、文件权限解读

我们用 ls -l 命令查看文件信息时,会显示下面这些字段,其中最左边的那一串字母,就表示这个文件的权限

drwxr-xr-x 2 root root 4096 Dec 16 13:56 a

  • 第一位:表示文件类型(d表示目录,-表示文件)
  • 第2~4位:表示文件所有者的权限
  • 第5~7位:表示用户组的权限
  • 第8~10位:表示其他用户的权限

权限使用 rwx- 四种符号表示

  • r:read,表示读权限,文件可以被查看
  • w:write,表示写权限,文件可以被修改
  • x:execute,表示执行权限,文件可以被执行
  • -:表示没有权限

三、数字权限

chmod命令可以用八进制数来制定权限,数字和字母权限的对应关系如下:

数字形式权限权限字母形式
7读 + 写 + 执行rwx
6读 + 写rw-
5读 + 执行r-x
4只读r–
3写 + 执行-wx
2只写-w-
1只执行–x
0

四、特殊的root权限

虽然我们经常管 root 叫超级管理员用户,但 root 的权限却不受到 chmod 命令的约束。

比如 /etc/shadow 的权限是全空,正常来说,所有用户都不能查看这个文件,但 root 用户却可以查看它的内容。

在这里插入图片描述

这就意味着,root 的权限凌驾于Linux的权限管理机制之上。


五、SUID详解

SUID是Linux系统的一个特殊权限,可以让其他用户临时获取文件的执行权限。

如果程序拥有SUID,程序运行为进程时,进程的所属用户就会变成程序的拥有者,而不是程序的调用者。

就相当于用户使用程序拥有者的身份来运行这个程序。

1. 设置SUID

设置SUID的前提是,文件具有可执行权限,也就是 rwx 权限,在这个基础上,再给它增加 s 权限:

chmod u+s a.txt

在这里插入图片描述

设置完SUID后可以看到,文件的权限由 rwx 变成 res

如果给一个没有执行权限的文件设置SUID,就会变成一个大写的 S,就是无效的意思。

在这里插入图片描述

2. 取消SUID

减去 s 权限,就能取消SUID权限

chmod u-s a.txt

在这里插入图片描述


3. SUID提权

拥有SUID权限的文件,在执行过程中,调用者会暂时获得文件所有者的权限。

如果文件的所有者是 root,低权限用户就可以利用这一点,进行提权。

以下命令可以寻找,系统上正在运行的拥有SUID的文件。

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;

Nmap和 Msfconsole等工具都有相应的SUID提权模块。

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

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

相关文章

chatgpt小程序版本来了,解决你们手机上想用用不了的问题,chatgpt接口用到小程序里面,调用openai接口,提供前后端源码,可以私有部署使用

现在的chatgpt被玩的都开始加广告,又办会员什么的的,今天就把小程序的前后端无广告版本源码和部署方式说一下。 先看效果: 部署环境 前端用的uniapp,基础模版,单页面没有太多引用 后端使用的python的falsk框架&#…

javassist学习

Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口。Javaassist 就是一个用来 处理 Java 字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深…

第29届中国国际广告节,酷开科技喜提三奖

第29届中国国际广告节,酷开科技喜提三奖 12月21日至12月23日,在风景如画的鹭岛厦门,第29届中国国际广告节于厦门国际会展中心隆重举行。经过几十年的高歌前行,中国国际广告节业已成为业界的盛会,更是中国广告业发展的…

(十)VUEElement

一、 VUE 1. 概述 Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上。官网:https://cn.vuejs.org 2. 快速入门 &#…

CRM管理系统哪个好用?这五款CRM系统值得推荐

选择一款合适的CRM系统,可以有效解决企业生产经营中分散的数据、不规则的工作流程、缺乏客户服务、销售预测不准确、远程工作效率低、错误的客户沟通、几乎没有销售和市场合作、报告不足等方面的业务难题。 CRM系统的选型可以从以下方面考虑: 下面分享几…

Faster RCNN网络源码解读(Ⅺ) --- 预测结果后处理及预测过程(完结撒花)

目录 一、回顾以及本篇博客内容概述 二、代码解析 2.1 ROIHead类(承接上篇博客的2.1节) 2.1.1 初始化函数 __init__回顾 2.1.2 正向传播forward回顾及预测结果后处理 2.1.3 postprocess_detections 2.2 FasterRCNNBase类前向传播过程 2.3 Genera…

MySQL Workbench基本用法

MySQL Workbench相当于SQL语言的解释器 目录 1 打开 2 连接数据库 3 创建数据库 4 创建数据表 4.1 字段类型 4.2 字段选项 4.3 其他 5 操作表中的数据 5.1 添加 5.2 更改 5.3 删除 6 代码编辑器 7 保存sql代码 8 加载sql代码 1 打开 搜索MySQL …

滑动窗口题型

先看一个题目:题目描述 题目描述:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 例如: 输入:s "ADOBECODE…

移动Web【rem、flexible、Less、vw / vh】

文章目录remflexibleLessvw / vhrem 网页效果 屏幕宽度不同,网页元素尺寸不同(等比缩放) px单位或百分比布局可以实现吗? px单位是绝对单位百分比布局特点宽度自适应,高度固定 适配方案 remvw / vh rem单位 相对单位…

Homekit智能家居DIY之智能通断开关

智能通断器,也叫开关模块,可以非常方便地接入家中原有开关、插座、灯具、电器的线路中,通过手机App或者语音即可控制电路通断,轻松实现原有家居设备的智能化改造。 随着智能家居概念的普及,越来越多的人想将自己的家改…

SQL SELECT DISTINCT 语句

SELECT DISTINCT 语句用于返回唯一不同的值。 SQL SELECT DISTINCT 语句 在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。 DISTINCT 关键词用于返回唯一不同的值。 SQL SELECT DISTINCT 语法 …

如何从零开始开发一个小程序

如何从零开始开发一个小程序开始申请账号开发设置开发工具新建小程序阅读文档模版语法项目架构开始编写基础语法wx:for循环wx:if判断页面导航自定义组件引用样式修改单行、多行省略flex布局grid布局发布开始 申请账号 小程序注册页 开发设置 登录 小程序后台 ,…

【Vue2+Element ui通用后台】Mock.js

文章目录Mock.js首页数据调用mock数据并完成布局Mock.js Mock.js 官网 Mockjs Github地址 作用:生成随机数据,拦截 Ajax 请求 使用npm i mockjs进行安装,然后在 api 下新建 mock.js import Mock from mockjs// 定义mock请求拦截 Mock.mock…

【CPU是如何执行程序的?】

CPU是如何执行程序的?1、、硬件结构介绍1.1、CPU1.2、内存1.3、总线1.4、输入/输出设备二、程序执行的基本过程三、a11执行的详细过程现代计算机的基本结构为五个部分:CPU、内存、总线、输入/输出设备。或许你了解了这些概念,但是你知道a11在…

leetcode每日一题(python)2023-1.2 1801. 积压订单中的订单总数 (middle)

leetcode每日一题 🚩 学如逆水行舟,不进则退。 —— 《增广贤文》 题目描述: 给你一个二维整数数组 orders ,其中每个 orders[i] [price(i), amount(i), orderType(i)] 表示有 amount(i)( )笔类型为 orderType(i) 、价格为 pric…

没错,这是2023年开篇!!

不知不觉小G和Gopher们一起相伴着又走过了一个年头,迎来了2023年。回望这一年我们有遗憾:因疫情的原因没能和大家在线下2022 GopherChina大会相聚一堂我们也有快乐与成就:在经过一番调查、统计、分析后发布了《2022 Q2 GO开发者问卷调查结果》…

阿里、京东、百度“激战”互联网医疗

与衣食住行一样,医疗需求同样对人们的生存具有重要意义。医疗行业经过多年的发展,也已经发生了翻天覆地的变化。除了线下医疗日益完善之外,互联网医疗也随着互联网的飞速发展而实现了快速起飞。现如今,互联网医疗已经逐步成为了线…

沿全尺寸模型水平轴 MHK 涡轮机(DOE RM1)叶片性能表征计算(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 该存储库包括 MATLAB 脚本和输入文件示例,用于沿全尺寸模型水平轴 MHK 涡轮机叶片计算 3D AOA、CL 和 CD。该脚本是…

idea插件代码生成工具EasyCode

idea插件代码生成工具EasyCode1. EasyCode下载安装2. EasyCode配置模板2.1 配置路径2.2 配置文件2.2.1. controller.java2.2.2. entity.java2.2.3. mapper.java2.2.4. service.java2.2.5. serviceImpl.java2.2.6. mapper.xml3. 构建SpringBoot项目3.1 初始化数据库3.2 创建项目…

git push -u origin master报错(vscode)

Missing or invalid credentials. Error: connect ECONNREFUSED /run/user/1000/vscode-git-e10c66c0ac.sock at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) { errno: -111, code: ‘ECONNREFUSED’, syscall: ‘connect’, address: ‘/run/user/1000/…