chmod

chmod

用来变更文件或目录的权限

概要

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

主要用途

  • 通过符号组合的方式更改目标文件或目录的权限。
  • 通过八进制数的方式更改目标文件或目录的权限。
  • 通过参考文件的权限来更改目标文件或目录的权限。

参数

mode:八进制数或符号组合。

file:指定要更改权限的一到多个文件。

选项

-c, --changes:当文件的权限更改时输出操作信息。
--no-preserve-root:不将'/'特殊化处理,默认选项。
--preserve-root:不能在根目录下递归操作。
-f, --silent, --quiet:抑制多数错误消息的输出。
-v, --verbose:无论文件是否更改了权限,一律输出操作信息。
--reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。
-R, --recursive:对目录以及目录下的文件递归执行更改权限操作。
--help:显示帮助信息并退出。
--version:显示版本信息并退出。

返回值

返回状态为成功除非给出了非法选项或非法参数。

例子

参考man chmod文档的DESCRIPTION段落得知:

  • u符号代表当前用户。
  • g符号代表和当前用户在同一个组的用户,以下简称组用户。
  • o符号代表其他用户。
  • a符号代表所有用户。
  • r符号代表读权限以及八进制数4
  • w符号代表写权限以及八进制数2
  • x符号代表执行权限以及八进制数1
  • X符号代表如果目标文件是可执行文件或目录,可给其设置可执行权限。
  • s符号代表设置权限suid和sgid,使用权限组合u+s设定文件的用户的ID位,g+s设置组用户ID位。
  • t符号代表只有目录或文件的所有者才可以删除目录下的文件。
  • +符号代表添加目标用户相应的权限。
  • -符号代表删除目标用户相应的权限。
  • =符号代表添加目标用户相应的权限,删除未提到的权限。
linux文件的用户权限说明:

# 查看当前目录(包含隐藏文件)的长格式。
ls -la
  -rw-r--r--   1 user  staff   651 Oct 12 12:53 .gitmodules

# 第1位如果是d则代表目录,是-则代表普通文件。
# 更多详情请参阅info coreutils 'ls invocation'(ls命令的info文档)的'-l'选项部分。
# 第2到4位代表当前用户的权限。
# 第5到7位代表组用户的权限。
# 第8到10位代表其他用户的权限。
# 添加组用户的写权限。
chmod g+w ./test.log
# 删除其他用户的所有权限。
chmod o= ./test.log
# 使得所有用户都没有写权限。
chmod a-w ./test.log
# 当前用户具有所有权限,组用户有读写权限,其他用户只有读权限。
chmod u=rwx, g=rw, o=r ./test.log
# 等价的八进制数表示:
chmod 764 ./test.log
# 将目录以及目录下的文件都设置为所有用户拥有读写权限。
# 注意,使用'-R'选项一定要保留当前用户的执行和读取权限,否则会报错!
chmod -R a=rw ./testdir/
# 根据其他文件的权限设置文件权限。
chmod --reference=./1.log  ./test.log

注意

  1. 该命令是GNU coreutils包中的命令,相关的帮助信息请查看man chmodinfo coreutils 'chmod invocation'
  2. 符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。
  3. 使用-R选项一定要保留当前用户的执行和读取权限,否则会报错!

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/chmod/

(0)
AuroraAurora站点维系者
上一篇 2023年 12月 7日 下午6:53
下一篇 2023年 12月 7日 下午6:53

相关推荐

  • 创建第一款iPhone应用程序

    现在让我们来创建一个在iOS模拟器上运行的简单视图应用(空白的应用程序)。 操作步骤如下: 1、打开Xcode并选择创建一个新的Xcode项目。 然后选择单一视图应用程序 接下来输…

    2023年 3月 29日
  • expand

    文章目录expand补充说明语法选项参数 expand 将文件的制表符转换为空白字符 补充说明 expand命令 用于将文件的制表符(TAB)转换为空白字符(space),将结果显…

    入门教程 2023年 12月 14日
  • watch

    文章目录watch补充说明语法选项参数实例 watch 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令 补充说明 watch命令 以周期性的方式执行给定…

    入门教程 2024年 1月 3日
  • C++ 数据类型

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。 您可能需要存储各种数据类型(比…

    2024年 3月 18日
  • finger

    文章目录finger补充说明语法选项参数实例 finger 用于查找并显示用户信息 补充说明 finger命令 用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大…

    入门教程 2023年 12月 14日
  • rpmdb

    文章目录rpmdb补充说明语法选项 rpmdb 初始化和重建RPM数据库 补充说明 rpmdb命令 用于初始化和重建rpm数据库。 语法 rpmdb(选项) 选项 –initdb…

    入门教程 2024年 3月 4日
  • iOS SQLite数据库

    文章目录简介实例步骤输出 简介 在IOS中使用Sqlite来处理数据。如果你已经了解了SQL,那你可以很容易的掌握SQLite数据库的操作。 实例步骤 1、创建一个简单的View …

    2023年 4月 1日
  • 上手编写-柿饼UI“环境检测仪”代码

    文章目录前言第一周:熟悉语法,产品框架第二周:设计UI界面第三周:设计界面,代码实现第四周:测试验证 前言 首先,感谢RTT的这次体验机会,此代码参考了Factory_Demo 先…

    入门教程 2021年 3月 31日
  • lsof

    文章目录lsof补充说明语法选项实例 lsof 显示Linux系统当前已打开的所有文件列表 lsof -p pid 补充说明 lsof命令 用于查看你进程打开的文件,打开文件的进程…

    入门教程 2023年 12月 19日
  • getsebool

    文章目录getsebool补充说明语法选项实例 getsebool 查询SElinux策略内各项规则的布尔值 补充说明 getsebool命令 是用来查询SElinux策略内各项规…

    入门教程 2023年 12月 14日
Translate »