更改文件权限的命令:chmod
命令原意:change the permissions mode of a file
更换文件的权限的对象,root和文件的所有者。
语法: chmod[{ugoa}{±=}{rwx}] [文件或者目录]
- -R *递归修改
功能: 改变文件或者目录的权限
用法介绍:比如我想给所有者加上执行(x)的权限,就用chmod u+x file,这样file文件的所有者就增加了一个执行的权限。
- 如果我想给所属组加上执行的权限, 就用 chmod g+x file *这样所属组就有了执行的权限。
- 如果我想给其他人加上执行的权限,类似操作
- 相类似,添加权限是 +,那么相反的去掉去权限就是 -
- 那 = 怎么用呢? = 是这样用,无论其原本的权限是什么,用了 = 之后,就是等号后面的权限,比如说file文件的所属组的权限原本是r–,如果执行 chmod g = rwx,那么这是file文件的所属组的权限就是rwx
- 如果我想要一下子修改多个权限,用逗号分隔开就可以了,例如:chmod g+r,o+w file这样就可以了
一般来说,权限都用数字进行表示:r --4 w–2 x–1
如果某个文件的权限是rwxr–r-x,那么用数字表示是:4+2+1 4+0+0 4+0+1,也就是745,以此类推
chmod 的 -R命令的作用(递归修改)
- 作用是,对目录进行权限修改时,如果想对目录下面的子目录的权限进行同步修改,例如:mkdir -p /temp/a/b 创建这样一个目录,如果我们对a目录的文件权限进行修改,那么chmod g=rwx /temp/a,此时,只是更改了a目录的所属组权限,对a目录下的b目录没有影响,如果想要对a修改的同时都b进行修改,就可以用这个 -p 命令,例如chmod -p g=rwx /temp/a,这样就可以实现目的了。
以下是对权限rwx的深入理解:
问题如下,如果管理员创建了一个/temp目录mkdir /temp,/temp目录的权限是rwxrwxrwx,然后我们在/temp目录下创建一个新的文件a ,touch /temp/a
文件的权限是rw-r–r--,*那么我们的问题是,一个普通用户可以删除这个由管理员创建的文件吗?
这里补充一下创建普通用户的命令: useradd [普通用户名] 回车之后 键入: password [密码],就完成了一个普通用户的创建
我们对rwx进行补充:
对文件来说:
- r 可以对文件进行查看的权限
- w 可以对文件进行编辑的权限
- x可以让文件拥有执行的权限
但是对于目录来说是不一样的:
- r 对于目录来说是读取权限 也就是列出目录中的内容,也就是可以看到子目录
- w 对于目录来说是可以在目录中创建、删除文件
- x 对于目录来说是可以进入目录(所以一般来说目录的权限是r和x一起的,只有能进入目录才能查看到目录中的内容)
这个问题中/temp的普通用户的权限是rwx,那也就是说管理员给了普通用户这个目录的全部权限,可以进行进入目录,修改目录内容,删除目录内容
注意: 文件的权限和目录的权限是不一样的 我想要删除目录下的文件只需要我对这个目录有w操作就行,不需要文件给予任何权限即可删除。
所以即使是普通用户在拥有对目录的w的权限的时候也可以对目录下的文件进行删除操作!