Linux命令chmod是"change mode"的缩写,用来改变文件及目录的权限。chmod很基本,基本到乏善可陈,平时用的也很频繁,频繁到没有难度,感恩节假期在闲暇之余利用几十分钟想出一些钻牛角尖式的问题,纯属无聊之举。
在这之前先做一下简单归纳。Linux/Unix文件系统权限(permission/mode)主要在两方面保护限制文件访问:访问文件用户类别,以及文件访问方式类别,这里的文件也包括目录。用户类别主要有三种:文件拥有者(User),与User同一群组者(Group),以及除此之外的其他用户(Other),分别用符号u、g、o表示,三者的总体用a表示。同样,文件访问基本类型也分为三种:读取(Read)、修改(Write)和执行(Execute),分别用符号r、w、x表示。chmod就是修改以上权限内容的指令。
chmod的指令格式一般像这样:`chmod 选项 模式表达式 文件名`,有三种形式:
- `chmod [选项] 模式[,模式] 文件`,其中”模式“的正则表达式为[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+
- `chmod [选项] 八进制模式 文件`,个人比较喜欢这种方法,简洁实用,其中注意0-7的含义。
- `chmod [选项] --reference=参考文件 文件`
其中,可选选项中重点理解"-R"和"--preserve-root"的含义。因为本文不是chmod指令的教程文章,所以具体细节不做说明讲解,实际遇到问题"chmod --help"和"info coreutils 'chmod invocation'"两条指令基本就可以解决所有问题,如果仍想具体深入学习也可以参考我给出的一些链接。
回到正题,以下是我想出一些问题,属于边边角角的知识,不是很经常遇到,如果对这些问题都感觉不是很陌生的话应该说明对chmod指令和文件权限已经掌握得很熟练了,甚至有些类似掌握茴香豆”茴“的四样写法的程度了。当然如果对其中一些问题不太明了可以向我提问,我会适当做出解答。@沂濛
- 用四种chmod命令形式将当前目录权限修改为User可读取执行,Group可读可执行,其他用户仅可执行。
- 解释执行权限符号”x“和”X“的区别。
- 写出文件模式"-rwxrw--wx"所对应的八进制模式数字。
- 写出执行命令`chmod u+rw,go-x,a=r,u+wx .`后,当前文件或目录现拥有权限所对应的八进制数字。
- 命令`chmod -R 777 /`的含义和危害,如何预防和补救?
- 有关suid和sgid在文件权限中的概念。
- 解释八进制模式中755,4755,2755和777分别的含义和区别。
- 命令`chmod u+s file`、`chmod g+s file`、`chmod o+s file`的含义。
- 命令`chmod u+t file`的含义。
- chmod中可选选项-c,-f,-v的优先级,三者不通顺序排列结果会有什么不同?(这个问题本身没有什么具体意义,甚至有些无聊,只是为了照应“牛角尖这个题目”)
参考链接:
文章评论