21. 常用shell之 chmod - 更改文件权限 的用法和衍生用法

chmod 是一个在 Unix 和类 Unix 系统(如 Linux 和 macOS)中用于更改文件或目录权限的命令。理解 chmod 的基本用法和衍生用法对于管理系统文件和保护数据安全非常重要。

基本用法

在 Unix 和类 Unix 系统中,文件和目录的访问权限被分为三类:所有者(owner)、所属组(group)和其他用户(others)。每类用户都可以被赋予以下权限:

  • 读(r):允许读取文件内容或列出目录中的内容。
  • 写(w):允许修改文件内容或在目录中添加/删除文件。
  • 执行(x):允许执行文件或进入目录。

chmod 命令的基本语法如下:

chmod [options] mode file...
  • options:可选参数,例如 -R 用于递归地更改目录及其内容的权限。
  • mode:指定权限的方式,可以是数字模式或符号模式。
  • file:要更改权限的文件或目录。
数字模式

数字模式使用三位数来表示权限,每一位代表一类用户的权限。

  • 第一位数字代表所有者的权限。
  • 第二位数字代表所属组的权限。
  • 第三位数字代表其他用户的权限。

每位数字是其对应权限的总和:

  • 读(r)= 4
  • 写(w)= 2
  • 执行(x)= 1

例如,chmod 755 file 表示:

  • 所有者具有读、写和执行权限(7 = 4+2+1)。
  • 所属组具有读和执行权限(5 = 4+1)。
  • 其他用户具有读和执行权限(5 = 4+1)。
符号模式

符号模式更直观,使用字母和操作符来表示权限的更改。

  • ugo 分别代表所有者、所属组和其他用户。
  • a 代表所有用户(所有者、所属组、其他用户)。
  • +-= 分别用来添加、删除和设置指定的权限。

例如,chmod u+x file 表示给文件的所有者添加执行权限。

衍生用法

  1. 递归更改权限:使用 -R 选项可以递归地更改目录及其内部所有文件和子目录的权限。例如,chmod -R 755 directory 会将指定目录及其所有内容设置为 755 权限。

  2. 设置默认权限:可以使用 umask 命令来设置新创建文件和目录的默认权限。umask 的值会从完全权限(通常是 777)中减去,以得出默认权限。

  3. 特殊权限位

    • Set User ID (SUID):当设置在可执行文件上时,该文件将以文件所有者的权限运行。
    • Set Group ID (SGID):对于目录,使得在此目录下创建的文件继承该目录的组。对于文件,当执行时,以文件所属组的权限运行。
    • Sticky Bit:在目录上设置时,只允许文件所有者删除其文件。

    这些特殊权限位可以通过在数字模式前添加一个数字(如 4 对于 SUID,2 对于 SGID,1 对于 Sticky Bit)来设置。

chmod 命令的使用必须谨慎,错误的权限设置可能导致安全问题或数据丢失。在实践中,应该根据需要最小化权限,特别是在多用户环境中。

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

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

相关文章

英语六级翻译

1. 青海是中国西北部的一个省份,平均海拔 3000 以上,大部分地区为高山和高原。青海省得名全国最大的咸水湖青海湖。青海湖被誉为“中国最美的湖泊”,是最受欢迎的旅游景点之一,也是摄影师和艺术家的天堂。 青海山川壮丽,地大物博。石油和天然气储量丰富,省内许多城市的…

【ArcGIS Pro微课1000例】0052:基于SQL Server创建企业级地理数据库案例

文章目录 环境搭建创建企业级数据库连接企业级数据库环境搭建 ArcGIS:ArcGIS Pro 3.0.1Server.ecp:版本为10.7SQL Server:版本为SQL Server Developer 2019创建企业级数据库 企业级地理数据库的创建需要通过工具箱来实现。工具位于:数据管理工具→地理数据库管理→创建企业…

亚马逊云科技AI应用 SageMaker 新突破,机器学习优势显著

(声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道) Amazon SageMaker是一种机器学习服务,帮助开发人员快速…

FFmpeg 安装配置

FFmpeg 安装配置 依赖包 sudo apt-get install -y autoconf automake bzip2 cmake freetype-devel gcc gcc-c git libtool make mercurial pkgconfig zlib-devel x264-develsudo apt-get install yasm -y安装 wget https://ffmpeg.org/releases/ffmpeg-4.2.3.tar.bz2tar -…

VS2022 将项目打包,导出为exe运行

我有一个在 VS2022 上开发的程序,基于.net 6框架, 想打包成 .exe程序,以在另一个没有安装VS的机器上运行,另一个机器是Win7系统,上面安装了.net 6框架。 虽然网上很多教程,需要安装Project Installer,配置A…

weston 1: 编译与运行傻瓜教程(补充)

系统kubuntu23.10 git clone https://gitlab.freedesktop.org/wayland/wayland.git 86588fbdebe7f6ac9363d98f524e4ae14bd4b019 meson build/ --prefix$WLD ninja -C build/ install git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git c4f559866f13…

FL Studio21.0.3.3517官方完整版下载步骤教程

FL Studio 21.0.3.3517 Producer Edition 全称Fruity Loops Studio 21 Producer Edition ,就是大家熟悉的水果编曲软件,一个全能的音乐制作软件,包括编曲、录音、剪辑和混音等诸多功能,让你的电脑编程一个全能的录音室。FL Studio…

如何处理好面试中的“压力测试”?

作为一名求职者,在面试时有时遇到的是压力测试,有时则遇到的是一些无良企业单位,究竟如何把握忍耐的限度,才合格当一个能经受压力的员工,才能避免对无良单位的一味隐忍! 压力面试是指有意制造紧张,以了解求…

BERT、GPT学习问题个人记录

目录 1. 为什么过去几年大家都在做BERT, 做GPT的人少。 2. 但最近做GPT的多了以及为什么GPT架构的scaling(扩展性)比BERT好。 3.BERT是否可以用来做生成,如果可以的话为什么大家都用GPT不用BERT. 4. BERT里的NSP后面被认为是没用的&#x…

Leetcode—380.O(1) 时间插入、删除和获取随机元素【中等】

2023每日刷题&#xff08;五十七&#xff09; Leetcode—380.O(1) 时间插入、删除和获取随机元素 算法思想 实现代码 class RandomizedSet { public:vector<int> nums;unordered_map<int, int> dict;RandomizedSet() {srand((unsigned)time(NULL));}bool insert(…

【STM32】USART串口协议

1 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 USRT&#xff1a;TX是数据发送引脚&#xff0c;RX是数据接受引脚&#xff1b; I2C&#xf…

什么是收单外包服务机构

收单外包服务机构是指那些专门为银行或者支付服务提供商&#xff08;如信用卡公司&#xff09;提供收单相关服务的第三方公司&#xff0c;但不直接参与资金的清算和结算过程。这些机构通常负责与商户的日常交互&#xff0c;包括商户的签约、终端的安装和维护、交易数据的处理、…

信号类型, wire/reg--FPGA入门2

1. 信号类型和功能描述 https://blog.csdn.net/m0_59161987/article/details/129723048?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170260773016800192251853%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id1702607730168001…

module ‘tensorflow‘ has no attribute XXX 报错解决

问题描述&#xff1a; 粘了别人的tensorflow项目&#xff0c;运行总是报错module ‘tensorflow’ has no attribute什么什么 问题解决&#xff1a; 导入tensorflow的代码如下 import tensorflow as tf此时&#xff0c;某个某块报错&#xff0c;比如下面这个 那么就直接把tf.…

基于python实现原神那维莱特开转脚本

相信不少原友都抽取了枫丹大C那维莱特&#xff0c;其强力的输出让不少玩家爱不释手。由于其转的越快&#xff0c;越不容易丢伤害的特点&#xff0c;很多原友在开转时容易汗流浃背&#xff0c;所以特意用python写了一个自动转圈脚本&#xff0c;当按住鼠标侧键时&#xff0c;即可…

【Docker】WSL 2 上的 Docker 搭建和入门

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 安装安装Docker Desktop for Windows 2️⃣ 环境配置3️⃣ hello world第一次运行再次运行分析总结 &#x1f4d6; 参考资料 &#x1f6eb; 导读 开发环境 版本号描述文章日期2023-12-14操作系统Win11 - 22H222621.2715WSL2 C:…

【NTN 卫星通信】Starlink,卫星互联网的技术革命(一)

1. 什么是Starlink Starlink是由Elon Musk创立的私人太空探索公司SpaceX提供的卫星互联网服务。它旨在为世界上传统互联网服务速度慢或不可用的偏远地区提供价格合理的高速互联网。 为什么Starlink很重要&#xff1f;   Starlink之所以重要&#xff0c;是因为它有可能为数百万…

C++入门【8-C++ 运算符】

C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋…

第一次使用ThreadPoolExecutor遇到的问题

最近遇到个问题&#xff0c;因为业务需求将表中的五个字段改成了CLOB&#xff0c;结果出现了sql异常&#xff0c;修改方式就是将这五个字段单独拿出来查询&#xff0c;结果导致了查询慢的问题&#xff0c;由于sql年代久远&#xff0c;涉及十几张表的关联&#xff0c;加减乘除&a…

管理类联考——逻辑——真题篇——按知识分类——论证逻辑

文章目录 2023真题(2023-27)-论证逻辑-削弱-措施目的型-缩写:zl吃lj→cclj,jjhb真题(2023-28)-论证逻辑-假设-搭桥-缩写:学校专业化服务→学生创业→创业者收益榜名列榜首;培养创新新型人才与创新创业培训的桥梁真题(2023-30)-论证逻辑-结构相似题-缩写:A不一定B,C…