1、chmod
命令作用:改变文件或目录的权限
命令语法:
chmod [{ugoa}{+-=}{rwx}] [文件或目录]
chmod [mode=777] [文件或目录]
-R 递归修改
命令说明:
- {ugoa}的含义,u表示所有者,g表示所属组,o表示其他人,a表示所有人;
- {+-=}的含义,+表示在原有权限上增加权限,-表示在原有权限上减少权限,=表示赋予新的权限;
- {rwx}的含义,r表示读权限,w表示写权限,x表示执行权限;
1.1、通过ugoa方式修改权限
创建一个文件,qinghuaci.txt。其默认权限为,rw-r--r--。
为所有者增加执行权限,执行命令:
chmod u+x qinghuaci.txt
再次查看权限,变成,rwxr--r--。
同时为所属组增加读权限,为其他人增加执行权限。执行命令:
chmod g+w,o+x qinghuaci.txt
注意:g+w,o+x命令中逗号后面不能有空格,否则会报错。
去除其他人的执行权限。执行命令:
chmod o-x qinghuaci.txt
如果其他人没有执行权限时,再次去除执行权限,也不会报错。即:可以多次执行同样的去除权限命令。
有两种方法为所有用户赋予读、写、执行权限。
方法一命令:
chmod u=rwx,g=rwx,o=rwx qinghuaci.txt
方法二命令:
chmod a=rwx qinghuaci.txt
1.2、通过数字方式修改权限
权限的数字表示规则:
- r表示4(100);
- w表示2(010);
- x表示1(001);
- -表示0(000);
rw-r--r--,对应的权限数字为,644。
r+w+- 也就是4+2+0=6
r--也就是4+0+0=6
rwxrw-r--,对应的权限数字为,764。
查看/tmp/song目录的权限以及song目录下文件的权限,如下图所示:
为/tmp/song目录赋予所有用户赋予全部权限,执行命令:
chmod 777 /tmp/song/
再次查看/tmp/song目录的权限以及song目录下文件的权限,如下图所示:
从图中可以看出,/tmp/song目录的权限发生了改变,但是目录下面的文件权限并未发生变化。
递归修改文件或者目录权限,执行命令:
chmod -R 777 /tmp/song/
注意:-R不可以小写(Linux系统是严格区分大小写的)
执行完成后,观察目录下面文件权限以及子目录下的文件权限,如下图所示:
权限全部变更了。
1.3、读写执行权限理解
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读 | 可以查看文件内容,可以cat/more/head/tail/less | 可以列出目录中的内容,可以ls |
w | 写 | 可以修改文件内容,可以vim | 可以在目录中创建,删除文件。可以touch/mkdir/rmdir/rm |
x | 执行 | 可以执行文件 可以script(脚本) command(命令) | 可以进入目录 可以cd |
我们需注意文件与目录中的权限,代表不同的含义!
这一点非常重要,对文件有写权限,并不代表就可以删除文件。
是否可以删除文件,需要查看文件所在目录的权限。