这是 chmodposix 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
chmod — 更改文件模式
概要
CHMOD [-R] 模式 文件...
商品描述
- CHMOD 实用程序应更改由每个文件命名的文件的任何或所有文件模式位
文件 以指定的方式操作数 模式 操作数。
它是实现定义的 CHMOD 效用影响任何替代或
额外的文件访问控制机制(参见 POSIX.1-2008 的 Base Definitions 卷,
部分 4.4, 文件 Access 权限) 用于指定的文件。
只有有效用户 ID 与文件的用户 ID 匹配的进程,或具有
适当的特权,应被允许更改文件的文件模式位。
成功更改文件的文件模式位后, CHMOD 实用程序应标记为
更新文件的最后一个文件状态更改时间戳。
配置
- CHMOD 实用程序应符合 POSIX.1-2008 的基本定义卷, 部分
12.2, 公用事业 句法 指南.
应支持以下选项:
-R 递归更改文件模式位。 对于每个 文件 命名目录的操作数,
CHMOD 应更改目录的文件模式位和文件中的所有文件
它下面的层次结构。
操作数
应支持以下操作数:
模式 表示要对每个以 XNUMX 命名的文件的文件模式位进行的更改
的 文件 操作数; 请参阅扩展说明部分。
文件 应修改其文件模式位的文件的路径名。
标准输入
不曾用过。
INPUT FILES
无。
环境 变数
以下环境变量会影响执行 CHMOD:
朗 为未设置或未设置的国际化变量提供默认值
空值。 (参见 POSIX.1-2008 的基本定义卷, 部分 8.2,
国际化 变量 为国际化优先
用于确定语言环境类别值的变量。)
LC_ALL 如果设置为非空字符串值,则覆盖所有其他字符串的值
国际化变量。
LC_CTYPE 确定用于解释文本数据字节序列的语言环境
作为字符(例如,单字节而不是多字节字符
论据)。
LC_消息
确定应该用于影响格式和内容的语言环境
写入标准错误的诊断消息。
路径 确定用于处理的消息目录的位置 LC_消息.
异步 新闻
默认。
标准输出
不曾用过。
斯特德
标准错误应仅用于诊断消息。
OUTPUT FILES
无。
EXTENDED 商品描述
- 模式 操作数应为 符号模式 表达式或非负八进制
整数。 的 符号模式 本节后面的语法描述了形式。
每 条款 应指定要对当前文件模式位执行的操作
每 文件. 操作应在每个 文件 按顺序
条款s 被指定。
- 谁 符号 u, g及 o 须指明 用户, 组及 other 文件的部分
模式位,分别。 一种 谁 由符号组成 a 应等于 乌戈.
- 烫发 符号 r, w及 x 代表 读, 写及 执行/搜索、 的部分
文件模式位,分别。 这 烫发 符号 s 应代表 设置用户 ID-on-
执行 (什么时候 谁 包含或暗示 u) 以及 执行时设置组 ID (什么时候 谁
包含或暗示 g) 位。
- 烫发 符号 X 应代表文件模式位的执行/搜索部分,如果
file 是一个目录,或者如果当前(未修改的)文件模式位至少有一个
执行位(S_IXUSR、S_IXGRP 或 S_IXOTH)设置。 如果文件不是一个
目录并且没有在当前文件模式位中设置任何执行位。
- 永久拷贝 符号 u, g及 o 应代表与相关联的当前权限
用户、组和文件模式位的其他部分,分别。 对于剩余的
这个部分, 烫发 指的是非终结符 烫发 和 永久拷贝 在语法中。
如果多个 动作列表s 与单个分组 全名单 在语法上,每个 动作列表
应按规定的顺序应用 全名单。 该 op 符号应代表
执行的操作如下:
+如果 烫发 未指定, '+' 操作不应改变文件模式位。
If 谁 未指定,文件模式位由 烫发 为业主,
组和其他权限,文件中具有相应位的权限除外
应设置调用过程的模式创建掩码。
否则,由指定的文件模式位表示 谁 和 烫发 价值观
被设置。
− 如果 烫发 未指定, '-' 操作不应改变文件模式位。
If 谁 未指定,文件模式位由 烫发 为业主,
组和其他权限,文件中具有相应位的权限除外
调用过程的模式创建掩码,应清除。
否则,由指定的文件模式位表示 谁 和 烫发 价值观
被清除。
= 清除指定的文件模式位 谁 值,或者,如果没有 谁 价值是
指定,本卷 POSIX.1-2008 中指定的所有文件模式位。
If 烫发 未指定, '=' 操作不得进一步修改
文件模式位。
If 谁 未指定,文件模式位由 烫发 为业主,
组和其他权限,文件中具有相应位的权限除外
应设置调用过程的模式创建掩码。
否则,由指定的文件模式位表示 谁 和 烫发 价值观
被设置。
在常规文件上使用符号模式形式时,它是实现定义的
或不:
* 请求设置 set-user-ID-on-execution 或 set-group-ID-on-execution 位
执行位当前被清除并且没有设置被忽略。
* 清除所有执行位的请求也会清除 set-user-ID-on-execution 和 set-
组 ID 执行位。
* 请求清除 set-user-ID-on-execution 或 set-group-ID-on-execution 位
当前清除的所有执行位都将被忽略。 但是,如果命令 ls -l 文件
写一个 s 在指示 set-user-ID-on-execution 或 set-group- 的位置
ID-on-execution 已设置,命令 CHMOD u−s 文件 or CHMOD 克−秒 文件分别
不应被忽视。
在其他文件类型上使用符号模式形式时,它是实现定义的
是否请求设置或清除 set-user-ID-on-execution 或 set-group-ID-on-
执行位受到尊重。
如果 谁 符号 o 与...一起使用 烫发 符号 s 没有别的 谁
指定的符号,执行时设置用户 ID 和执行时设置组 ID 位
不得修改。 指定不应该是错误的 谁 符号 o 结合
与 烫发 符号 s.
- 烫发 符号 t 应指定 S_ISVTX 位。 当与目录类型的文件一起使用时,
它可以与 谁 符号 a, 或者没有 谁 象征。 这不会是一个错误
指定一个 谁 的象征 u, g或 o 连同 烫发 符号 t,但意义
这些组合中的哪些是未指定的。 使用时的效果 烫发 符号 t 与任何
未指定目录以外的文件类型。
对于八进制整数 模式 操作数,文件模式位应绝对设置。
对于八进制数中设置的每一位,对应的文件权限位显示在
应设置下表; 应清除所有其他文件权限位。 对于常规
文件,对于在与 set-user-ID-on-execution 相对应的八进制数中设置的每个位
或 set-group-ID-on-execution,如下表所示的比特被设置; 如果这些
位未在八进制数中设置,它们被清除。 对于其他文件类型,它是
implementation-defined 是否请求设置或清除 set-user-ID-on-
执行或 set-group-ID-on-execution 位被尊重。
┌────────────────────┬──────────────────┬────────────── ──────┬────────────────────┐
│八进制 时尚 位 │ 八进制 时尚 位 │ 八进制 时尚 位 │ 八进制 时尚 位 │
├──────────────────┼────────────────────┼──────────── ──────┼──────────────────────┤
│4000 │ 复制代码 0400 │ 0040 │ 复制代码 0004 │
├──────────────────┼────────────────────┼──────────── ──────┼──────────────────────┤
│2000 │ 复制代码 0200 │ 0020 │ 編輯 | 0002 │
├──────────────────┼────────────────────┼──────────── ──────┼──────────────────────┤
│1000 │ │ 0100 │ 0010 │ │ 0001 S_IXOTH │
└────────────────────┴──────────────────┴────────────── ──────┴────────────────────┘
当在上表所列以外的八进制数中设置位时,
行为未指定。
英语文法 HPMC胶囊 CHMOD
本节中的语法和词汇约定描述了
符号模式 操作数。 这种语法风格的一般约定在
部分 1.3, 英语文法 公约. 一个有效的 符号模式 可以表示为非
终端符号 符号模式 在语法中。 此正式语法应优先
在前面的文本语法描述上。
词法处理完全基于单个字符。 实现不需要
允许正在处理的单个参数中的字符。
%开始 符号模式
%%
符号模式:子句
| symbolic_mode ',' 子句
;
条款:动作列表
| 全名单行动清单
;
名单:谁
| 名单谁
;
谁:'你' | 'g' | 'o' | '一种'
;
动作列表:动作
| 动作列表动作
;
行动:操作
| 操作列表
| 操作永久拷贝
;
永久复制:'你' | 'g' | '哦'
;
操作:'+' | '-' | '='
;
烫发清单:烫发
| 烫发清单
;
烫发:'r' | 'w' | 'x' | 'X' | 's' | 't'
;
退出 状态
应返回以下退出值:
0 实用程序成功执行并且所有请求的更改都已完成。
>0 发生错误。
后果 OF 错误
默认。
- 以下 部分 旨在 内容丰富。
申请须知 用法
的一些实现 CHMOD 实用程序在文件之前更改目录的模式
在执行递归时在目录中 (-R 选项)改变; 其他人改变
目录中的文件后的目录模式。 如果应用程序尝试删除读取或
文件层次结构的搜索权限,如果目录是
先变了; 另一方面,尝试重新启用受限制的权限
如果最后更改目录,则层次结构失败。 用户不应试图建立层次结构
他们自己无法访问。
的一些实现 CHMOD 从未使用过 遮罩 改变模式时的过程;
符合本 POSIX.1-2008 卷的系统在以下情况下这样做 谁 未指定。 笔记
和...之间的不同:
CHMOD a-w 文件
这将删除所有写入权限,并且:
CHMOD -- -w 文件
它删除了在以下情况下允许的写权限 文件 是用相同的
遮罩.
符合标准的应用程序永远不应该假设他们知道 set-user-ID 和 set-
目录上的组 ID 位被解释。
示例
┌──────┬──────────────────────────────────┐
│ 时尚 │ 结果演示 │
├──────┼──────────────────────────────────┤
│a+= │ 相当于 a+,a=; 清除 │
│ │ 所有文件模式位。 │
│go+−w │ 等价于 go+,go - w; 清除 │
│ │组等写位。 │
│g=o - w │ 相当于 g=o,g - w; 套│
│ │分组位匹配其他位│
│ │ 然后清除组写│
│ │ 位。 │
│g - r+w │ 相当于 g - r,g+w; 清除 │
│ │ group 读位并设置 group │
│ │写位。 │
│uo=g │ 设置所有者位以匹配组 │
│ │ 位并将其他位设置为 │
│ │ 匹配组位。 │
└──────┴──────────────────────────────────┘
基本原理
的功能 CHMOD 基本上是通过参考概念来描述的
在 POSIX.1-2008 的系统接口卷中定义。 这样一来,少了
描述权限交互所需的重复工作。 然而,
此实用程序的行为未根据 CHMOD() 函数来自
POSIX.1-2008 的系统接口卷,因为该规范需要某些方面 -
对可能不合适的替代文件访问控制机制的影响,
取决于实施。
支持 1984 指定的强制文件和记录锁定的实现
/usr/group 标准历史上使用 set-group-ID 位集和组的组合
执行位清除以指示强制锁定。 这个条件通常被设置或清除
使用符号模式 烫发 符号 l 而不是 烫发 符号 s 和 x 所以这样
强制锁定模式不会在没有明确指示的情况下改变
用户打算。 因此,有关实现如何处理这些条件的详细信息
必须在文档中定义。 这卷 POSIX.1-2008 不需要
强制锁定(POSIX.1-2008 的系统接口卷也没有),但允许
它作为一个扩展。 然而,这卷 POSIX.1-2008 确实要求 ls 和
CHMOD 公用事业公司在这方面始终如一。 如果 ls -l 文件 表明集合——
组 ID 位被设置, CHMOD 克−秒 文件 必须清除它(假设存在适当的权限
改变模式)。
System V 和 BSD 版本使用不同的退出状态代码。 使用的一些实现
退出状态作为发生错误数量的计数; 这种做法是
不可行,因为它可能会溢出有效退出状态值的范围。 这个问题是
通过仅指定 0 和 >0 作为退出值来避免这里。
POSIX.1-2008 的系统接口卷表明实现定义
限制可能会导致 S_ISUID 和 S_ISGID 位被忽略。 这个体积
POSIX.1-2008 允许 CHMOD 在调用之前选择修改这些位的实用程序
CHMOD() (或某些提供等效功能的函数)用于非常规文件。 之中
其他事情,这允许使用 set-user-ID 和 set-group-ID 位的实现
在目录上启用扩展功能以智能方式处理这些扩展
方式。
- X 烫发 符号是从基于 BSD 的系统中采用的,因为它提供了普遍需要的
执行递归时的功能(-R 选项)修改。 类似的功能不是
由...提供 发现 公用事业。 历史 BSD 版本 CHMOD,但是,只支持 X
- op+; 它在 POSIX.1-2008 的这一卷中得到了扩展,因为它也很有用
- op=. (它也已添加用于 op- 即使它重复 x, 在这种情况下,
因为它直观且易于解释。)
语法扩展为 永久拷贝 允许历史实践形式的非终端
符号模式,如 o=u -g (即,将“其他”权限设置为权限
“所有者”的权限减去“组”的权限)。
未来 如何前往
无。
使用 onworks.net 服务在线使用 chmodposix