fbpx
维基百科

chmod

chmod是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数。只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

用法 编辑

chmod使用语法舉例:

$ chmod [options] mode[,mode] file1 [file2 ...] 

使用ls命令的查看文件或目录的属性

$ ls -l file 

八进制语法 编辑

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

# 权限 rwx 二进制
7 读 + 写 + 执行 rwx 111
6 读 + 写 rw- 110
5 读 + 执行 r-x 101
4 只读 r-- 100
3 写 + 执行 -wx 011
2 只写 -w- 010
1 只执行 --x 001
0 --- 000

例如, 765 将这样解释:

  • 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如rwx ,也就是4+2+1 ,应该是7。
  • 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如rw- ,也就是4+2+0 ,应该是6。
  • 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如r-x ,也就是4+0+1 ,应该是5。

例如,修改文件myfile的权限

$ chmod 664 myfile $ ls -l myfile -rw-rw-r-- 1 57 Jul 3 10:13 myfile

符号模式 编辑

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和permission(权限),每个项目的设置可以用逗号隔开。 命令chmod将修改who指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在who的位置来说明,如who的符号模式表所示:

who 用户类型 说明
u user 文件所有者
g group 文件所有者所在组
o others 所有其他用户
a all 所用用户, 相当于 ugo

operator的符号模式表:

Operator 说明
+ 为指定的用户类型增加权限
- 去除指定用户类型的权限
= 设置指定用户权限的设置,即将用户类型的所有权限重新设置

permission的符号模式表:

模式 名字 说明
r 设置为可读权限
w 设置为可写权限
x 执行权限 设置为可执行权限
X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

例子:

chmod u+x filename 在这里,u的意思是user指用户本人;+的意思是增加权限;x是指文件执行权限

符号模式实例 编辑

对目录的所有者u和关联组g增加读r和写w权限:

$ chmod ug+rw mydir $ ls -ld mydir drw-rw---- 2 unixguy uguys 96 Dec 8 12:53 mydir 

对文件的所有用户ugo删除写w权限:

$ chmod a-w myfile $ ls -l myfile -r-xr-xr-x 2 unixguy uguys 96 Dec 8 12:53 myfile 

mydir的所有者u和关联组g设置成读r和可执行x权限:

$ chmod ug=rx mydir $ ls -ld mydir dr-xr-x--- 2 unixguy uguys 96 Dec 8 12:53 mydir 

特殊模式 编辑

参看: 文件系统权限

命令使用实例 编辑

命令 说明
chmod a+r file 给file的所有用户增加读权限
chmod a-x file 删除file的所有用户的执行权限
chmod a+rw file 给file的所有用户增加读写权限
chmod +rwx file 给file的所有用户增加读写执行权限
chmod u=rw,go= file 对file的所有者设置读写权限,清空该用户组和其他用户对file的所有权限(空格代表无权限)
chmod -R u+r,go-r docs 对目录docs和其子目录层次结构中的所有文件给用户增加读权限,而对用户组和其他用户删除读权限
chmod 664 file 对file的所有者和用户组设置读写权限, 为其其他用户设置读权限
chmod 0755 file 相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)0 没有特殊模式。
chmod 4755 file 4设置了设置用户ID位,剩下的相当于 u=rwx (4+2+1),go=rx (4+1 & 4+1)。
find path/ -type d -exec chmod a-x {} \; 删除可执行权限对path/以及其所有的目录(不包括文件)的所有用户,使用‘-type f'匹配文件
find path/ -type d -exec chmod a+x {} \; 允许所有用户浏览或通过目录path/

函数说明 编辑

chmod函数C语言的定义:

int chmod(const char *path, mode_t mode); 

函数使用mode_t类型的参数,使用其比特位组成各种模式:

模式 八进制 含义
S_ISUID 04000 执行时设置用户ID,setuid权限
S_ISGID 02000 执行时设置组ID,setgid权限
S_ISVTX 01000 粘贴位
S_IRUSR, S_IREAD 00400 所有者读
S_IWUSR, S_IWRITE 00200 所有者写
S_IXUSR, S_IEXEC 00100 所有者执行
S_IRGRP 00040 由组读
S_IWGRP 00020 由组写
S_IXGRP 00010 由组执行
S_IROTH 00004 其他人读
S_IWOTH 00002 其他人写
S_IXOTH 00001 其他人执行

模式进行按位或运算对应期望的权限。

函数检验的错误以及相应的错误码在man page有定义。

参考文献 编辑

  • Linux命令,编辑器与Shell编程,清华大学出版社,ISBN 987-7-302-13944-7

外部链接 编辑

  • chmod(页面存档备份,存于互联网档案馆) — manual page from GNU coreutils.
  • GNU "Setting Permissions" manual(页面存档备份,存于互联网档案馆
  • Mac OS X chmod man page(页面存档备份,存于互联网档案馆), which also supports access control lists.
  • CHMOD-Win 3.0(页面存档备份,存于互联网档案馆) — Freeware Windows' ACL ←→ CHMOD converter.
  • , web-based CHMOD calculator.
  • Beginners tutorial with on-line "live" example(页面存档备份,存于互联网档案馆
  • Searchable examples

chmod, 是一条在unix系统中用于控制用户对文件的权限的命令, change, mode单词前缀的组合, 和函数, 只有文件所有者和超级用户可以修改文件或目录的权限, 可以使用绝对模式, 八进制数字模式, 符号模式指定文件的权限, 目录, 用法, 八进制语法, 符号模式, 符号模式实例, 特殊模式, 命令使用实例, 函数说明, 参考文献, 外部链接用法, 编辑使用语法舉例, options, mode, mode, file1, file2, 使用ls命令的查看文件或目录的属性, file, 八进制语法, 编. chmod是一条在Unix系统中用于控制用户对文件的权限的命令 change mode单词前缀的组合 和函数 只有文件所有者和超级用户可以修改文件或目录的权限 可以使用绝对模式 八进制数字模式 符号模式指定文件的权限 目录 1 用法 1 1 八进制语法 1 2 符号模式 1 3 符号模式实例 1 4 特殊模式 1 5 命令使用实例 2 函数说明 3 参考文献 4 外部链接用法 编辑chmod使用语法舉例 chmod options mode mode file1 file2 使用ls命令的查看文件或目录的属性 ls l file 八进制语法 编辑 chmod命令可以使用八进制数来指定权限 文件或目录的权限位是由9个权限位来控制 每三位为一组 它们分别是文件所有者 User 的读 写 执行 用户组 Group 的读 写 执行以及其它用户 Other 的读 写 执行 历史上 文件权限被放在一个比特掩码中 掩码中指定的比特位设为1 用来说明一个类具有相应的优先级 权限 rwx 二进制7 读 写 执行 rwx 1116 读 写 rw 1105 读 执行 r x 1014 只读 r 1003 写 执行 wx 0112 只写 w 0101 只执行 x 0010 无 000例如 765 将这样解释 所有者的权限用数字表达 属主的那三个权限位的数字加起来的总和 如rwx 也就是4 2 1 应该是7 用户组的权限用数字表达 属组的那个权限位数字的相加的总和 如rw 也就是4 2 0 应该是6 其它用户的权限数字表达 其它用户权限位的数字相加的总和 如r x 也就是4 0 1 应该是5 例如 修改文件myfile的权限 chmod 664 myfile ls l myfile rw rw r 1 57 Jul 3 10 13 myfile 符号模式 编辑 使用符号模式可以设置多个项目 who 用户类型 operator 操作符 和permission 权限 每个项目的设置可以用逗号隔开 命令chmod将修改who指定的用户类型对文件的访问权限 用户类型由一个或者多个字母在who的位置来说明 如who的符号模式表所示 who 用户类型 说明u user 文件所有者g group 文件所有者所在组o others 所有其他用户a all 所用用户 相当于 ugooperator的符号模式表 Operator 说明 为指定的用户类型增加权限 去除指定用户类型的权限 设置指定用户权限的设置 即将用户类型的所有权限重新设置permission的符号模式表 模式 名字 说明r 读 设置为可读权限w 写 设置为可写权限x 执行权限 设置为可执行权限X 特殊执行权限 只有当文件为目录文件 或者其他类型的用户有可执行权限时 才将文件权限设置可执行s setuid gid 当文件被执行时 根据who参数指定的用户类型设置文件的setuid或者setgid权限t 粘贴位 设置粘贴位 只有超级用户可以设置该位 只有文件所有者u可以使用该位例子 chmod u x filename 在这里 u的意思是user指用户本人 的意思是增加权限 x是指文件执行权限 符号模式实例 编辑 对目录的所有者u和关联组g增加读r和写w权限 chmod ug rw mydir ls ld mydir drw rw 2 unixguy uguys 96 Dec 8 12 53 mydir 对文件的所有用户ugo删除写w权限 chmod a w myfile ls l myfile r xr xr x 2 unixguy uguys 96 Dec 8 12 53 myfile 对mydir的所有者u和关联组g设置成读r和可执行x权限 chmod ug rx mydir ls ld mydir dr xr x 2 unixguy uguys 96 Dec 8 12 53 mydir 特殊模式 编辑 参看 文件系统权限命令使用实例 编辑 命令 说明chmod a r file 给file的所有用户增加读权限chmod a x file 删除file的所有用户的执行权限chmod a rw file 给file的所有用户增加读写权限chmod rwx file 给file的所有用户增加读写执行权限chmod u rw go file 对file的所有者设置读写权限 清空该用户组和其他用户对file的所有权限 空格代表无权限 chmod R u r go r docs 对目录docs和其子目录层次结构中的所有文件给用户增加读权限 而对用户组和其他用户删除读权限chmod 664 file 对file的所有者和用户组设置读写权限 为其其他用户设置读权限chmod 0755 file 相当于u rwx 4 2 1 go rx 4 1 amp 4 1 0 没有特殊模式 chmod 4755 file 4设置了设置用户ID位 剩下的相当于 u rwx 4 2 1 go rx 4 1 amp 4 1 find path type d exec chmod a x 删除可执行权限对path 以及其所有的目录 不包括文件 的所有用户 使用 type f 匹配文件find path type d exec chmod a x 允许所有用户浏览或通过目录path 函数说明 编辑chmod函数C语言的定义 int chmod const char path mode t mode 函数使用mode t类型的参数 使用其比特位组成各种模式 模式 八进制 含义S ISUID 04000 执行时设置用户ID setuid权限S ISGID 02000 执行时设置组ID setgid权限S ISVTX 01000 粘贴位S IRUSR S IREAD 00400 所有者读S IWUSR S IWRITE 00200 所有者写S IXUSR S IEXEC 00100 所有者执行S IRGRP 00040 由组读S IWGRP 00020 由组写S IXGRP 00010 由组执行S IROTH 00004 其他人读S IWOTH 00002 其他人写S IXOTH 00001 其他人执行模式进行按位或运算对应期望的权限 函数检验的错误以及相应的错误码在man page有定义 参考文献 编辑Linux命令 编辑器与Shell编程 清华大学出版社 ISBN 987 7 302 13944 7外部链接 编辑Linux 文件和目录的属性 chmod 页面存档备份 存于互联网档案馆 manual page from GNU coreutils GNU Setting Permissions manual 页面存档备份 存于互联网档案馆 Solaris 9 chmod man page Mac OS X chmod man page 页面存档备份 存于互联网档案馆 which also supports access control lists CHMOD Win 3 0 页面存档备份 存于互联网档案馆 Freeware Windows ACL CHMOD converter What CHMOD File Permissions Calculator web based CHMOD calculator Beginners tutorial with on line live example 页面存档备份 存于互联网档案馆 chmod examples Searchable examples 取自 https zh wikipedia org w index php title Chmod amp oldid 73174710, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。