首页 > 其他分享 >chmod命令详解

chmod命令详解

时间:2024-07-23 16:33:53浏览次数:9  
标签:执行 文件名 用户 chmod 命令 详解 八进制 权限

chmod 是 Unix 和 Linux 系统中用于更改文件或目录权限的命令。权限控制确保只有适当的用户可以读取、写入或执行文件。为了有效地使用 chmod,需要理解文件权限的表示方法。

权限表示方法

文件权限由三组组成:用户(user),组(group),和其他(others)。每组有三种权限:

  • 读 (read, r)
  • 写 (write, w)
  • 执行 (execute, x)

这三种权限分别用一个字符表示,如果没有权限则用 - 表示。例如:

  • rwx:读、写、执行权限都有。
  • rw-:读、写权限有,但没有执行权限。

每个文件或目录的权限可以用以下格式表示:

-rwxr-xr--

第一位表示文件类型(- 表示普通文件,d 表示目录等),接下来的九位表示权限,分成三组三组。

使用 chmod 的两种方法:符号法和八进制法

符号法

符号法使用字符来表示权限的添加或移除。格式如下:

chmod [ugoa][+-=][rwx] 文件名
  • u:用户
  • g:组
  • o:其他
  • a:所有(用户、组和其他)

符号:

  • +:添加权限
  • -:移除权限
  • =:设置权限(覆盖当前权限)

示例:

chmod u+x 文件名  # 给用户添加执行权限
chmod g-w 文件名  # 移除组的写权限
chmod o=r 文件名  # 设置其他用户只有读权限
chmod a+r 文件名  # 所有人添加读权限

在使用 chmod 命令时,省略用户类型u(用户)、g(组)或 o(其他)会默认应用到所有用户类型,即用户、组和其他所有人。因此,命令 chmod +x example.txt 是一种简写形式,等同于 chmod a+x example.txt,其中 a 代表所有人(all)

八进制法

八进制法使用一个三位的数字来表示权限,每位数字是一个八进制数,分别表示用户、组和其他的权限。每种权限用以下数字表示:

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

这些数字可以累加,例如:

  • 7 表示读、写和执行权限 (4 + 2 + 1)
  • 6 表示读和写权限 (4 + 2)
  • 5 表示读和执行权限 (4 + 1)

示例:

chmod 755 文件名  # 用户有读、写、执行权限,组和其他有读、执行权限
chmod 644 文件名  # 用户有读、写权限,组和其他只有读权限
chmod 700 文件名  # 只有用户有读、写、执行权限

示例解释

假设有一个文件 example.txt,当前权限如下:

-rw-r--r--

意味着:

  • 用户有读和写权限
  • 组有读权限
  • 其他人有读权限

我们可以使用 chmod 修改权限:

添加执行权限给用户

chmod u+x example.txt

修改后权限为:

-rwxr--r--

移除组的读权限

chmod g-r example.txt

修改后权限为:

-rwx----r--

设置文件权限为 755(用户:读、写、执行;组:读、执行;其他:读、执行)

chmod 755 example.txt

修改后权限为:

-rwxr-xr-x

总结

  • 使用 chmod 可以通过符号法和八进制法来修改文件或目录的权限。
  • 符号法适合进行增量式权限修改,而八进制法适合一次性设置权限。
  • 理解权限的表示方法对于管理文件系统中的权限至关重要。

标签:执行,文件名,用户,chmod,命令,详解,八进制,权限
From: https://www.cnblogs.com/yunt/p/18318775

相关文章

  • 从代码调用 alembic 命令后,Python 记录器不再记录
    我在代码中使用alembic在应用程序启动时应用数据库迁移。我还使用Python的内置logginglib来登录终端。应用迁移后(或运行任何打印到alembic的命令),我的记录器停止工作。stdout代码:预期输出:importloggingimportalembic.commandfr......
  • 力扣第二题——两数相加(链表的讲解与运用,含解决链表问题模板)(含思路详解、完整代码与知
    内容介绍给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0 开头。示例1:输入:l1=[2,4,3],......
  • 是否有一种非详细的方法可以通过 mypy 命令禁用多个错误代码?
    如果我想禁用mypy中的多个错误代码(无需修改任何配置文件或向.py文件添加注释),我可以执行以下操作:mypy--disable-error-codetruthy-function--disable-error-codeno-redef.但是,当您想要的错误代码数量较多时,这很容易变得冗长禁用增加。有没有什么方法可以完成相同的......
  • “pipenv”不被识别为内部或外部命令、可操作程序或批处理文件
    我是python的初学者,所以请温柔一点,如果您确实有答案,请提供详细信息。在确保删除所有以前的安装(包括anaconda)后,我刚刚安装了最新的python版本3.10。我确信我的系统没有任何先前的安装。安装python3.10后,我打开终端并运行以下命令:piplist输出:piplistPa......
  • Django视图与URLs路由详解
            在DjangoWeb框架中,视图(Views)和URLs路由(URLrouting)是Web应用开发的核心概念。它们共同负责将用户的请求映射到相应的Python函数,并返回适当的响应。本篇博客将深入探讨Django的视图和URLs路由系统,提供实际的代码示例和操作指导,确保读者能够具体而实际地了解如......
  • SQL 注入漏洞详解 - Union 注入
    1)漏洞简介SQL注入简介SQL注入即是指Web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到......
  • C语言printf和scanf函数详解
    文章目录一、printf二、scanf一、printfprintf()的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的f代表format(格式化),表示可以定制输出⽂本的格式,并且它是一个库函数,要包含头文件<stdio.h>,具体包含方式如下:#include<stdio.h>printf最基本的用法:用双引号直接引起需要......
  • python接口自动化(四十)- logger 日志 - 下(超详解)
    宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介按照上一篇的计划,这一篇给小伙伴们讲解一下:(1)多模块使用logging,(2)通过文件配置logging模块,(3)自己封装一个日志(logging)类。可能有的小伙伴在这里会有个疑问一个logging为什么分两篇的篇幅......
  • 通过命令行运行时,收到错误“no attribute Predict_proba”
    我有一组代码,当我在python解释器(3.8.4)中运行时,一切正常。然而,当我尝试通过命令行运行时,我最终收到一个错误:AttributeError:This'SelfTrainingClassifier'hasnoattribute'predict_proba'这很奇怪,因为当我浏览文档时,selfTrianingClassifier确实有predcit_proba......
  • Qt 实战(7)元对象系统 | 7.5、QMetaProperty详解
    文章目录一、QMetaProperty详解1、QMetaProperty的作用2、使用QMetaProperty2.1、声明属性2.2、访问属性3、QMetaProperty成员方法4、示例4.1、通过名称获取指定属性4.2、遍历全部属性(包含从基类继承下来的)4.3、遍历当前类的全部属性(不包含从基类继承下来的)5、动态属性......