chmod
命令名称:chmod
命令英文原意:change the permissions mode of a file
命令所在路径/bin/chmod
执行权限:所有用户
语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录]
chmod [mode=421] [文件或目录]
-R 递归修改
功能描述:改变文件或目录的权限
解释:u所有者,g所处组,o其他人,a所有用户, +增加权限,-减少权限,=不管你原来是什么权限现在我给你的权限改了相当于赋值的意思
权限的数字表示:r----4,w----2,x----1.例如一个目录的权限位是rwxrw-r--,那么u就是7(4+2+1),g是6(4+2+0),o是4(4+0+0)
范例:
1.如下面两幅图 第一幅图 我用mkdir创建了一个a1目录,用ls查看这个目录之后可以查看到a1的权限(还有/tmp下别的文件,在这里我没有截图,只截了a1部分),d代表他是目录文件,所有者rwx三个权限都有,所处组和其他人只有rx两个权限。如图2用chmod命令让u(所有者)的权限-x(执行),再用ls查看发现发现前面的权限位第四个位置由x变成了-。
2.如下面的三幅图,图1作为对比图,图2给所处组的权限加了一个w,其他人的权限减去一个r,图三权限位已经做出了改变。这个例子的意思是同时操作两个权限位时,中间用,隔开而不是空格。
3.要掌握给一个权限位可以写出来他的数字表示,给一个数字表示可以写出他的权限位!!!
如果我想把a1的权限改为rw-r----- 只需要写出这个的权限位就可以了(640),不用再u=...,g=...,o=...了,如下图的例子。图1是改变之前的结果,图二是操作命令和改变之后的结果。
4.-R选项是递归改变权限位。类似于mkdir里-p是递归创建文件一样,这里递归改变权限位的意思是不仅把你指明路径下的目录的权限位改了,而且把这个目录下所有的文件或目录的权限位都改了。如下图,
第一行是我在临时目录下递归创建了a和b两个目录;第二行是查看a目录的详细信息,第三行是结果(权限位是rwxr-xr-x);第四行是查看目录a下的目录b的详细信息,第五行是结果(权限位是rwxr-xr-x);第六行是没有用递归改变目录a的权限位的操作命令;第七行是查看a目录的详细信息,第八行是结果(权限位是rwxrwxrwx);第九行是查看a目录的详细信息,第十行是结果(权限位是rwxr-xr-x);所以,经过那个操作改变的只是a的权限位,而并没有改变a下面目录或文件的权限位。第十一行是用递归(-R)改变目录a的权限位的操作命令;后面两个命令是查看a和b的详细信息,可以从结果看出权限位都改变了。这就是递归改变权限位的作用----不仅改变指明目录,还会改变指明目录下所有的目录和文件,让他们的权限位变成你所指定的。
对目录和文件rwx权限的解读:删除一个文件的前提不是对文件有w操作,而是对文件所在目录有w操作。对文件有w操作只能说明可以对文件内容进行修改,而不是可以对文件有删除增加操作。
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
r | 读权限 | 可以查看文件内容 | 可以列出目录中的内容 |
w | 写权限 | 可以修改文件内容 | 可以在目录中创建,删除文件 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |