【面试题38】linux下面chmod和chown使用详解

news2024/12/23 20:01:25

文章目录

  • 一、前言
  • 二、什么是 chmod 命令?
    • 2.1 使用方法:
    • 2.2 数值表示法:
    • 2.3 符号表示法:
  • 三、什么是 chown 命令?
    • 3.1 使用方法:
    • 3.2 更改所有者和用户组:
  • 四、使用示例
    • 4.1 使用 chmod 命令修改权限
    • 4.2 使用 chown 命令修改所有者
  • 五、结论


一、前言

本文已收录于PHP全栈系列专栏:PHP面试专区。
计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列,欢迎大家提前关注锁定。

文章只发布于CSDN平台,坚决杜绝抄袭,侵权必究。

在 Linux 系统中,chmodchown 是两个非常重要的命令。它们可以用于修改文件和目录的权限以及所有者属性。本文将详细介绍这两个命令,并提供一些常见的使用示例。

在这里插入图片描述

二、什么是 chmod 命令?

chmod 命令用于改变文件和目录的访问权限。权限分为三种:所有者权限、群组权限和其他用户权限。每种权限又分为读、写和执行。chmod 命令通过修改权限位来实现这些更改。

2.1 使用方法:

chmod 命令的基本用法如下:

chmod [选项] 模式 文件/目录

其中,[选项] 表示一些可选参数,模式 表示目标权限的数值表示或符号表示,文件/目录 表示需要修改权限的目标。

2.2 数值表示法:

在数值表示法中,每个权限位有一个对应的数字,分别是:

  • r(读权限):4
  • w(写权限):2
  • x(执行权限):1

这三个数字求和得到的结果即为相应权限的数值表示。例如,如果要将一个文件的所有者权限设置为可读可写可执行,可以将其权限位设置为 7(4+2+1)。

2.3 符号表示法:

除了数值表示法,也可以使用符号表示法来修改权限。符号表示法更加直观和易于理解。

在符号表示法中,每个权限位由一个字母和一个操作符组成:

  • u(所有者):属主的权限
  • g(群组):属组的权限
  • o(其他用户):其他用户的权限
  • a(所有人):所有人的权限

操作符包括:

  • +(添加权限)
  • -(移除权限)
  • =(设置权限)

例如,要将一个文件的属主权限设置为可写和可执行,可以使用以下命令:

chmod u+wx 文件

三、什么是 chown 命令?

chown 命令用于改变文件和目录的所有者。所有者可以是用户名或用户组名。当更改文件的所有者时,同时也会更改文件的群组所有者。

3.1 使用方法:

chown 命令的基本用法如下:

chown [选项] 所有者 文件/目录

其中,[选项] 表示一些可选参数,所有者 表示新的所有者用户名或用户组名,文件/目录 表示需要更改所有者的目标。

3.2 更改所有者和用户组:

默认情况下,chown 命令只更改文件的所有者。如果需要同时更改文件的群组所有者,可以使用 -R 选项。

chown -R 新所有者:新用户组 文件/目录

这样就可以将文件和目录以及其内部所有内容的所有者和用户组都更改为新的值。

四、使用示例

4.1 使用 chmod 命令修改权限

示例一:
将文件 file.txt 的所有者权限设置为只读,群组权限设置为读写,其他用户权限设置为只执行。

chmod u=r,go=rx file.txt

这条命令中,u=r 设置了文件的所有者权限为只读,go=rx 设置了群组和其他用户的权限为可读可执行。

示例二:
将文件夹 folder 及其内部所有文件和子目录的权限都设置为可读可写。

chmod -R u+rw folder

-R 选项表示递归地修改所有子目录和文件的权限。

示例三:
若要将文件 “file.txt” 的权限设置为只有所有者有读写权限,而其他用户只有读权限,可以使用以下命令:

chmod 644 file.txt

示例四:
若要将目录 “mydir” 及其内部所有文件和子目录的权限设置为所有者具有读、写和执行权限,而其他用户只具有读和执行权限,可以使用以下命令:

chmod -R 750 mydir

示例五:
若要将脚本文件 “script.sh” 设置为可执行,可以使用以下命令:

chmod +x script.sh

示例六:
若要将一个文件夹里的所有文件和子目录设置为只读权限,可以使用以下命令:

chmod -R a-w myfolder

4.2 使用 chown 命令修改所有者

示例一:
将文件 file.txt 的所有者更改为 user1

chown user1 file.txt

这条命令将文件的所有者更改为 user1

示例二:
将文件夹 folder 以及其内部所有文件和子目录的所有者和用户组都更改为 user1:group1

chown -R user1:group1 folder

-R 选项表示递归地修改所有子目录和文件的所有者和用户组。

五、结论

在 Linux 系统中,chmodchown 是非常重要的命令,它们可以帮助我们管理文件和目录的权限以及所有者属性。本文详细介绍了这两个命令的使用方法,并提供了一些常见的使用示例。希望本文对您学习和使用 chmodchown 命令有所帮助。

本文已收录于PHP全栈系列专栏:PHP面试专区。
计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列,欢迎大家提前关注锁定。

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

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

相关文章

想要逼疯项目经理,真的太简单了

早上好,我是老原。 最近有个小友来找我吐槽,说太崩溃了,带个项目太不容易了…… 此情此景,我已经脑补了各种抱头痛哭流涕的画面,油然升起一股同情。 其实,项目经理,听起来是个经理&#xff0…

echarts条形图动态显示2

1、实现效果,条形图自动滚动,鼠标移入停止滚动,移出继续滚动 2、代码 声明的变量:图表,图表数据与定时器 myChartArea: , dataArea: {categoryData: [],valueData: [],fullData: [], }, timeOut: null,设…

【无公网IP端口映射】远程访问本地jupyter notebook服务

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook,它是一个交互式的数据科学和计算环境,支持多种编程语言,如…

Devchat让代码爽飞

Devchat让代码爽飞 安装python3安装vscode中安装devchat插件使用参考资料 devchat是一个免费的vscode插件,可以在vsocde中提示代码。 安装 devcha依赖于python3,首先需要再电脑中安装python3.然后在vscode中安装插件,然后利用python安装dev…

canal探索及应用

认识canal 译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年…

冷门研究冒险家同济陈涵晟:让科技帮助未来人类拓展艺术边界

原来他们是这样走过来的! 【AI红人荟】——这里是TechBeat人工智能社区为优秀的AI工作者开设的人物专访栏目。从膜拜“红人”到成为“红人”,TechBeat与你一起,在AI进阶之路上,升级打怪、完美通关~ 本篇人物,是来自同…

消息中间件RabbitMQ详解

一、 消息中间件 简介 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 使用环境 消息中间件适用于需要可靠的数据传送…

超细整理,接口自动化测试-DDT参数化驱动实战,一招打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 ddt说明 一般进行…

MySQL数据库——索引练习

一、练习题目 1、建立一个utf8编码的数据库test1 2、建立商品表goods和栏目表category(要求:按如下表结构创建表,并且存储引擎engine myisam 字符集charset utf8) 3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click…

JMeter中如何实现接口之间的关联?

关联是Jmeter工具中非常重要的一个技术。因为在测试过程过有些数据是经常发生变化的,要获取并使用这些数据,就要使用关联。 比如:用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的…

【国产复旦微FMQL45教程】-Procise应用流程

本教程采用 FMQL7045 FPGA开发板来完成整个试验,板卡照片如下: 具有丰富的接口资源,系统框图如下: 本教程用于完成基于Vivado的FMQL45的LED实验,目标是能够将这款开发板PL端先跑起来。 2 Procise工程建立 &#xff0…

AI绘画在线生成!推荐这个国产Midjourney平替

AI技术越来越成熟,不仅能生成文本,还能绘画。AI绘画软件层出不穷,很多人接触的是Midjourney。我之前也用过Midjourney,确实在作品精确度、图像细节等方面很出色。但用Midjourney需要有良好的网络,而且必须得是会员。 因…

Mysql常用存储引擎------MyISAM存储引擎

文章目录 一、MyISAM存储引擎1、1加锁与并发2、1修复3、1索引特性3、4 延迟更新索引键3、5 MyISAM 压缩表3、6 MyISAM 性能 二、MySQL 存储引擎 MyISAM 与 InnoDB 如何选择?一、InnoDB支持事务,MyISAM不支持,这一点是非常重要。事务是一种高级…

【嵌入式Qt开发入门】Qt如何网络编程——建立TCP通信服务端(附项目代码)

TCP 简介 TCP 协议(Transmission Control Protocol)全称是传输控制协议是一种面向连接的、可靠的、 基于字节流的传输层通信协议。 TCP 通信必须先建立 TCP 连接,通信端分为客户端和服务端。服务端通过监听某个端口来监听是否有客户端连接到来…

7.kafka+ELK连接

文章目录 kafkaELK连接部署Kafkakafka操作命令kafka架构深入FilebeatKafkaELK连接 kafkaELK连接 部署Kafka ###关闭防火墙systemctl stop firewalld systemctl disable firewalldsetenforce 0vim /etc/selinux/configSELINUXdisabled###下载安装包官方下载地址:ht…

python散记

"""字符串格式化的两种方法"""name"sans" age18 math_score90.56 english_score88.8print(f"这个学生的名字叫{name},年龄{age},数学分数是{math_score},总分是{math_scoreenglish_score}") print("这个学生的名字叫%s…

APP开发的未来:虚拟现实和增强现实的角色

移动应用程序越来越多地在我们的日常生活中发挥着重要作用。但是,随着技术的不断发展,未来的 APP开发会有什么新的发展方向呢?这是每个人都在关心的问题。在过去的几年中,移动应用程序领域发生了巨大变化。像 VR/AR这样的技术为人…

第63讲:Python编程案例之猴子吃桃

文章目录 1.需求描述以及分析2.递推方式实该该程序3.递归方式实现该程序 1.需求描述以及分析 需求描述: 猴子第一天摘了若干个桃子,第一天吃了若干个桃子中的一半,觉得不过瘾,又多吃了一个。 第二天早上又将第一天剩下的桃子吃…

Spring 项目创建和使用2 (Bean对象的存取)

目录 一、创建 Bean 对象 二、将Bean对象存储到 Spring容器中 三、创建 Spring 上下文(得到一个Spring容器) 1. 通过在启动类中 ApplicationContext 获取一个 Spring容器 2. 通过在启动类种使用 BeanFactory 的方式来得到 Spring 对象 (此…

MAYA粒子目标goalV和goalU详细应用

一下就填充到点 一个一个点填充 nParticleShape1.goalV0.5; nParticleShape1.goalU0.5; 粒子向中心移动 V方向使用渐变 删除U方向表达式 也使用渐变 使用圆角 nParticleShape1.goalUrand(0,1); nParticleShape1.goalUnParticleShape1.goalU0.02; nParticleShape1.goalUnPartic…