总揽

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

chmod - 改变文件的访问权限的更多相关文章

  1. UNIX环境编程学习笔记(8)——文件I/O之校验当前登录用户对文件的访问权限

    lienhua342014-09-03 通过前面一篇随笔(文件访问权限与进程访问控制),我们知道内核校验文件的访问权限使用的是进程的有效用户 ID 和有效组 ID.但有时我们需要知道当前登录用户对某个 ...

  2. python判断文件的访问权限

    os.access(file, mode)判断文件的访问权限file为文件mode为操作模式,有这么几种:os.F_OK: 检查文件是否存在;os.R_OK: 检查文件是否可读;os.W_OK: 检查 ...

  3. Linux新手入门:通过chmod改变文件权限--转

    前面介绍过在Linux中如何查看文件的属性,在Linux文件权限详解中我们介绍了Linux文件的三种身份和四种权限,三种身份分别为: u:文件的拥有者 g:文件所属的群组 o:其他用户 对于每个身份, ...

  4. 关于heritrix安装配置时出现”必须限制口令文件读取访问权限”的解决方法

    转载:http://www.floatinglife.cn/关于heritrix安装配置时出现必须限制口令文件读取访问 最近开始写一个RSS聚合程序,需要爬虫支持,于是就整来heritrix,没想到, ...

  5. Linux中文件夹访问权限不足

    经常操作Linux服务器,远程访问会遇到403问题,本篇讲述nginx下文件权限的修改. 1.命令修改该文件夹的权限 chmod -R 755 /usr/local/....   文件夹的路径 2.修 ...

  6. Windows Server 2012下手动配置IIS的文件夹访问权限

    当新建一个website的时候,一般情况下IIS对相应的物理文件夹的访问权限是不够的. 针对匿名认证(anonymous authentication)需要: 打开文件夹properties-> ...

  7. Java继承,重写方法时改变方法的访问权限

    java中的方法天生具有继承多态特性,这点与C++有很大不同(需要在父类方发上加virtual关键字),但用起来确实方便了许多. 最简单的继承多态 声明一个接口BaseIF,只包含一个方法声明 pub ...

  8. Linux的文件/目录访问权限

    一直以为对这个概念非常懂,但这次还是犯了眼高手低的毛病. 配置服务器遇到了一个问题,对某个WEB目录(例如"/bin"),有两个用户要对其进行读写操作: 首先apache服务器要对 ...

  9. Linux下更改目录及其下的子目录和文件的访问权限

    想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理. 例如: [root@localhost ~]# chmod 777 /home/user 注:仅把 ...

随机推荐

  1. Lightoj 1011 - Marriage Ceremonies

    You work in a company which organizes marriages. Marriages are not that easy to be made, so, the job ...

  2. The type exists in both DLLs

    2>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\c0b37647\aaceda91\Ap ...

  3. 整型变量修饰符,char类型数据存储原理,字节数,

    //------------------整型变量修饰符 修饰符(int short long longlong signed unsigned)所有修饰符都是用来修整形 int 4short %hd ...

  4. java的内部类解析

    内部类分为四种: 成员内部类.类方法与普通方法同级: 局部内部类.类方法内部,局部内部类有构造器,通过构造器把外部的变量传入局部内部类再使用是完全可以的 匿名内部类.匿名内部类是唯一没有构造器的类,和 ...

  5. 转载:NOR Flash擦写和原理分析

    1. NOR FLASH 的简单介绍 NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失.NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行(这意味着存 ...

  6. EF 连接MySql

    使用EntityFramework6连接MySql数据库(db first方式) http://www.cnblogs.com/24la/archive/2014/04/03/ef6-mysql.ht ...

  7. CodeForces 723A The New Year: Meeting Friends (水题)

    题意:给定 3 个数,求其中一个数到另外两个数之间的最短距离. 析:很明显选中间那个点了. 代码如下: #pragma comment(linker, "/STACK:1024000000, ...

  8. Swift4 函数, 元组, 运算符

    创建: 2018/02/19 完成: 2018/02/19 更新: 2018/02/25 修改标题 [Swift4 函数] -> [Swift4 函数, 元组, 运算符] 更新 :2018/03 ...

  9. HDU1244:Max Sum Plus Plus Plus

    题目链接:Max Sum Plus Plus Plus 题意:在n个数中取m段数使得这m段数之和最大,段与段之间不能重叠 分析:见代码 //dp[i][j]表示前i个数取了j段的最大值 //状态转移: ...

  10. bzoj 2152: 聪聪可可【点分治】

    裸的点分治,运算在模3下进行然后统计答案的时候统计余1的*余2的*2+余0的^2 #include<iostream> #include<cstdio> using names ...