chmod - 改变文件的访问权限
总揽
chmod [options] mode file...
POSIX 选项:
[-R]
GNU 选项 (最短方式): [-cfvR] [--reference=rfile] [--help] [--version] [--]
描述
使用chmod命令改变指定文件访问权限有两种方式:一种是用符号标记所进行更改,另一种方式是采用8进制数指定新的访问权限。使用下面的语法格式来使用符号改变方式
`[ugoa...][[+-=][rwxXstugo...]...][,...]'.
在这种格式下,所带参数是一个用逗号分隔的字符列表.每个符号方式的改变命令以零或者字'ugoa'开始;'ugoa'控制哪些用户对该文件访问权限将被改变:文件的所有者(u),与文件所有者同组的用户(g),其他组的用户(o),所有用户(a).因此,a在这里等同于ugo.如果没有带参数,则缺省设置为a,运行效果相同,但是在umask中设置的位将不会受影响.
操作符'+'使得用户选择的权限被追加到每个指定文件,(操作给指定文件添加所选权限);操作符'-'使得这些权限被撤消;'='使得指定文件只具有这些权限。
字符串'rwxXstugo' 给用户选择新的属性:(r)读权限、(w)写权限、 (x)执行权(或对目录的访问权),(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性,(s)同时设定用户或组ID,(t)粘滞位(保存程序的文本到交换设备上),(u)目标文件属主,(g)目标文件属主所在的组,(o)其他用户。(因此,'chmod g-s file' 撤消sgid位,'chmod ug+s file'同时设置了suid和sgid位,'chmod o+s file' 则没有进行任何设置)
POSIX并没有粘滞位的描述。它最初是指在交换设备上保留程序文本。现在,如果设置了目录的粘滞位,那么只有文件和目录的所有者可以删除该目录下的文件。 (一般使用于类似于/tmp这样有基本写权限的目录)
数字模式是一到4个八进制数,每个数由位权为4,2,1的3位叠加而得. 被省略掉的数字缺省设置为零. 第一位为4时为suid,2时为sgid,1时为粘滞位,.第二位设置文件所有者的权限:可读(4),可写(2),可执行(1); 第三位设置了文件所在组其他用户的权限,值如上;第四位设置了其他组的用户的权限,值同上.
由于chmod的系统调用不支持,chomd命令不能改变符号链接的权限. 由于符号链接的权限从不使用,所以这也不成问题.无论如何,由于每个符号连接都可在命令行中列出,chmod改变了所指文件的属性. 相反,chmod在递归目录遍历时忽略所碰到的符号连接.
POSIX 选项
-R 改变目录及目录下的内容的访问权限.
GNU 选项
- -c, --changes
- 只有在文件的权限确实改变时才进行详细的说明
- -f, --silent, --quiet
- 不输出权限不能改变的文件的错误信息
- -v, --verbose
- 详细说明权限的变化
- -R, --recursive
- 改变目录及其所有子目录的文件的权限
- --reference=rfile
- (更新在fileutils 4.0上) 改变文件的模式到rfile.
GNU 标准选项
- --help
- 在标准输出上输出帮助信息并退出
- --version
- 在标准输出上输出版本信息并退出
- --
- 终端选项列表
环境变量
变量LANG, LC_ALL, LC_CTYPE ,LC_MESSAGES与一般情况相同.
遵循
POSIX 1003.2 只需要-R参数。使用其他选项可能无法移植。该标准没有描述 来保持一致性,也就是说,当所有的可执行位都被清除了以后, chomd 是否还完全保留`s'位.
非标准模式
在上面的内容中我们讨论了't'位在目录上的用法。不同的系统对这些位的组合有特殊的定义。特别是Linux,继System V之后(参考System V 接口描述(SVID)第三卷),给一个文件设置 sgid 位但又不给它设置组执行权限,那么就标志该文件被强制锁住.详细内容,参照文件 /usr/src/linux/Docu-mentation/mandatory.txt
相关文章
- obj-c编程10:Foundation库中类的使用(3)[文件管理]
- linux文件经 windows系统 之后出现 权限缺失 的解决方法
- 三步教你iOS导入.ttf字体文件
- asp.net输出重写压缩页面文件实例
- Linux系统下如何查看及修改文件读写权限
- Ubuntu 文件文件夹查看权限和设置权限
- H5新特性之拖拽文件
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
- 鸟哥笔记-专题二:Linux文件和文件夹权限差异对比
- Python中的文件IO操作(读写文件、追加文件)
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
- 5-1python语法基础-文件操作
- python处理xml文件
- Linux文件权限管理命令
- Java操作k8s api示例:使用kubeconfig文件认证;获取所有pod;获取pod内应用容器的启动日志
- 正确使用阿里云NAS文件存储服务系列之文件权限校验
- CentOS 文件特殊权限SUID,SGID,SBIT
- 使用 SAP UI5 FileUploader 控件上传本地文件试读版
- Atitit..文件上传组件选型and最佳实践总结(2)----断点续传
- 无法保存对hosts权限所作的更改 拒绝访问(权限,防止Windows主机文件、进程、注册表项进行操作和更改)
- 文件的权限问题及umask 普通文件 SUID chmod
- 【Android 安全】DEX 加密 ( Java 工具开发 | 生成 dex 文件 | Java 命令行执行 )
- java IO文件操作简单基础入门例子,IO流其实没那么难
- SWFUpload多文件上传 文件数限制 setStats()
- linux 中文件权限和磁盘管理、linux服务器项目如何部署
- 005-文件权限解说、授权chmod和chown命令的用法
- ubuntu 赋予文件下所有文件的读写权限
- emacs文件/目录比较工具(二十三)
- 【软件测试基础知识】Linux 基础知识-Shell、文件与目录管理、用户、权限操作等
- 文件包含和目录遍历区别——目标都是信息泄露,但手段一个是利用函数来包含web目录以外的文件,另外一个是对web路径访问权限设置不严格导致