1. 用法
  2.  
  3. chmod使用语法
  4.  
  5. $ chmod [options] mode[,mode] file1 [file2 ...]
  6.  
  7. 使用ls命令的查看文件或目录的属性
  8.  
  9. $ ls -l file
  10.  
  11. 八进制语法
  12.  
  13. chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(user)的读、写、执行,用户组(group)的读、写、执行以及(other)其它用户的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
  14.  
  15. chmod的八进制语法的数字说明;
  16.  
  17. r 4
  18.  
  19. w 2
  20.  
  21. x 1
  22.  
  23. - 0
  24.  
  25. 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如rwx ,也就是4+2+1 ,应该是7
  26.  
  27. 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如rw- ,也就是4+2+0 ,应该是6
  28.  
  29. 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如r-x ,也就是4+0+1 ,应该是5
  30.  
  31. 例如修改文件myfile的权限
  32.  
  33. $ chmod 664 myfile
  34. $ ls -l myfile
  35. -rw-rw-r-- 1 57 Jul 3 10:13 myfile
  36.  
  37. 符号模式
  38.  
  39. 使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和permission(权限),每个项目的设置可以用逗号隔开。 命令chmod将修改who指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在who的位置来说明,如who的符号模式表所示:
  40. who 用户类型 说明
  41. u user 文件所有者
  42. g group 文件所有者所在组
  43. o others 所有其他用户
  44. a all 所用用户, 相当于 ugo
  45.  
  46. operator的符号模式表:
  47. Operator 说明
  48. + 为指定的用户类型增加权限
  49. - 去除指定用户类型的权限
  50. = 设置指定用户权限的设置,即将用户类型的所有权限重新设置
  51.  
  52. permission的符号模式表:
  53. 模式 名字 说明
  54. r 设置为可读权限
  55. w 设置为可写权限
  56. x 执行权限 设置为可执行权限
  57. X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
  58. s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
  59. t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位
  60. 符号模式实例
  61.  
  62. 对目录的所有者u和关联组g增加读r和写w权限:
  63.  
  64. $ chmod ug+rw mydir
  65. $ ls -ld mydir
  66. drw-rw---- 2 unixguy uguys 96 Dec 8 12:53 mydir
  67.  
  68. 对文件的所有用户ugo删除写w权限:
  69.  
  70. $ chmod a-w myfile
  71. $ ls -l myfile
  72. -r-xr-xr-x 2 unixguy uguys 96 Dec 8 12:53 myfile
  73.  
  74. mydir的所有者u和关联组g设置成读r和可执行x权限:
  75.  
  76. $ chmod ug=rx mydir
  77. $ ls -ld mydir
  78. dr-xr-x--- 2 unixguy uguys 96 Dec 8 12:53 mydir
  79.  
  80. 命令使用实例
  81. 命令 说明
  82. chmod a+r file 增加读权限对file的所有用户
  83. chmod a-x file 删除执行权限对file的所有用户
  84. chmod a+rw file 增加读写权限对file的所有用户
  85. chmod +rwx file 增加读写执行权限对file的所有用户
  86. chmod u=rw,go= file 设置读写权限对file的所有者,清空所有权限对file的用户组和其他用户
  87. chmod -R u+r,go-r docs 对目录docs和其子目录层次结构中的所有文件增加所有用户的读权限,而对用户组和其他用户删除读权限
  88. chmod 664 file 设置读写权限对file的所有者和用户组, 为其其他用户设置读权限
  89. chmod 0755 file 相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)。0 没有特殊模式。
  90. chmod 4755 file 4设置了设置用户ID,剩下的相当于 u=rwx (4+2+1),go=rx (4+1 & 4+1)。
  91. find path/ -type d -exec chmod a-x {} \; 删除可执行权限对path/以及其所有的目录(不包括文件)的所有用户,使用‘-type f'匹配文件
  92. find path/ -type d -exec chmod a+x {} \; 允许所有用户浏览或通过目录path/
  93. 函数说明
  94.  
  95. chmod函数C语言的定义:
  96.  
  97. int chmod(const char *path, mode_t mode);
  98.  
  99. 函数使用mode_t类型的参数,使用其比特位组成各种模式:
  100. 模式 八进制 含义
  101. S_ISUID 04000 执行时设置用户ID,setuid权限
  102. S_ISGID 02000 执行时设置组ID,setgid权限
  103. S_ISVTX 01000 粘贴位
  104. S_IRUSR, S_IREAD 00400 所有者读
  105. S_IWUSR, S_IWRITE 00200 所有者写
  106. S_IXUSR, S_IEXEC 00100 所有者执行
  107. S_IRGRP 00040 由组读
  108. S_IWGRP 00020 由组写
  109. S_IXGRP 00010 由组执行
  110. S_IROTH 00004 其他人读
  111. S_IWOTH 00002 其他人写
  112. S_IXOTH 00001 其他人执行
  113.  
  114. 模式进行按位或运算对应期望的权限。
  115. 参考文献
  116. linux命令行与shell脚本编程大全

linux下chmod使用的更多相关文章

  1. Linux下chmod命令

    命令格式 参数 描述 u User,即文件或目录的拥有者 g Group,即文件或目录的所属群组 o Other,除了文件或目录拥有者或所属群组之外,其它用户皆属于这个范围 a All,即全部的用户, ...

  2. Linux下chmod 777 修改权限

    在linux操作系统下,使用shell命令来操作: 关于权限的问题用chmod命令来修改权限 -rw-r-r-- 1 root root 可参考:http://zhidao.baidu.com/lin ...

  3. LINUX 下chmod|chown|chgrp和用法和区别

    1.chgrp(转变文件所属用户组) chgrp 用户组 文件名 ###便是这个格了.若是整个目次下的都改,则加-R参数用于递归. 如:chgrp -R user smb.conf 2.chown(转 ...

  4. 简说LINUX 下chmod|chown|chgrp和用法和区别

    1.chgrp(改变文件所属用户组) chgrp 用户组    文件名    ###就是这个格了.如果整个目录下的都改,则加-R参数用于递归. 如:chgrp  -R    user  smb.con ...

  5. chmod不起作用的原因分析 - Linux下查看分区文件系统类型

    chmod不起作用 可能的原因: chmod对应的是windows下的一个磁盘分区,ntfs不支持linux权限 附:Linux下如何查看分区文件系统类型 1,fdisk -l fdisk -l 只能 ...

  6. Linux下的用户和用户组,文件权限:chown和chmod

    如下图所示,root权限下新建一个用户MasterBai, /etc/passwd文件中新加入一些信息 这个文件中,记录了该服务器的用户信息,如下图红色框起来的用户,就是我们自己创建的用户,而起来2- ...

  7. Aix/Linux下自动备份oracle数据库

    曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...

  8. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  9. Linux下的几个好用的命令与参数

    将所有文件的编码,转换为UTF-8 find . ! -type d -exec enca -L zh_CN -x UTF-8 {} \; 将指定目录下所有文件权限设定为644 find . ! -t ...

随机推荐

  1. python 全栈开发,Day44(IO模型介绍,阻塞IO,非阻塞IO,多路复用IO,异步IO,IO模型比较分析,selectors模块,垃圾回收机制)

    昨日内容回顾 协程实际上是一个线程,执行了多个任务,遇到IO就切换 切换,可以使用yield,greenlet 遇到IO gevent: 检测到IO,能够使用greenlet实现自动切换,规避了IO阻 ...

  2. ERP退货系统管理(四十五)

    添加的存储过程:(添加退货申请信息的存储过程) CREATE PROCEDURE [dbo].[BioBackSendGoods_ADD] @SendBackID INT OUTPUT, ), @Ap ...

  3. Git强制更新本地库和冲突解决

    1.You have not concluded your merge. (MERGE_HEAD exists) 本地有修改和提交,如何强制用远程的库更新.出现这种情况一般是git本地有commit, ...

  4. day8--socketserver作业

    fileno()文件描述符 handle_request()处理单个请求 server_forever(poll_interval=0.5)处理多个请求,poll_interval每0.5秒检测是否关 ...

  5. Python debug 调试;

    F9:执行跳到下一个断点 F8:执行下一步 F7:进入函数

  6. 练习|Django-多表

    models.py from django.db import models # Create your models here. class Author(models.Model): nid = ...

  7. Python 手动新建 Scrapy项目

    # 创建项目 scrapy startproject 工程名 # 创建爬虫 scrapy genspider example example.com

  8. rocketMQ基本架构简介

    1.RocketMQ 简介: RocketMQ前身是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能.高可靠.高实时.分布式特点. 2.Roc ...

  9. 使用PhoneGap搭建一个山寨京东APP(转)

      为什么要写一个App 首先解释下写出来的这个App,其实无任何功能,只是用HTML和CSS模仿JD移动端界面写的一个适配移动端的Web界面.本篇主要内容是介绍如何使用PhoneGap把开发出来的m ...

  10. HDU - 1712 - ACboy needs your help 【分组背包】

    <题目链接> 题目大意:有n个课程,现在花M天来学习这些课程,学习每个课程花的天数所得到的价值不同,求M天怎么分配学习才能得到的价值最大.(这些课程得到的价值和所花天数的关系由矩阵给出) ...