权限,就是对某事项进行决策程度和范围,通俗来说,就是规定哪些事情能做、哪些事情不能做。那么,在Linux中有哪些基本权限呢?进入目录需要哪些权限、在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作需要哪些权限?
一:Linux中的基本权限
首先权限主要分为两方面:人和属性
1:文件访问者(人)主要包括:
主用户: u (user)
组用户: g(group)
其他用户:o(other)
具体解释如下:
2:基本权限
(1)r(读):对于文件而言,具有读文件的权限,对目录而言,具有浏览目录的权限。
(2)w(写):对文件而言,具有修改文件的权限,对目录而言,具有删除,移动目录的权限。
(3)x(执行):execute对文件而言,具有执行文件的权限,对于目录而言,具有进入目录的权限。
二:基本权限的表现形式
1:通过字母和“-”表示
在当前目录输入ll(字母L小写)指令并执行,查看当前目录下所有你项目的权限,如图所示:
在执行结果第一列显示即为某一项的可操作权限,这些操作权限其实是按照拥有者u、所属组g、其他o的权限顺序依次组合。
其中“-”表示不具有该权限。
2:通过数字来表示
拥有者u、所属组g、其他o所拥有的权限其实可以用一个八进制数字来表示,也就是说,一个文件的权限可以通过三个八进制数字来表示
例如:
具有可读可写可执行权限(rwx)——111(二进制)——7(八进制)
具有可读可执行权限(r-x)——101(二进制)——5(八进制)
不具有可读可写可执行权限(—)——000(二进制)——0(八进制)
三:进入目录的权限
1:如何修改权限
(1)以字母形式进行修改,用chmod u+r code,利用chmod命令,通过g,u或者o加减所要的权限或者权限组合,来实现对文件权限的修改,修改之后再用ll权限来查看修改后的权限。
(2)以数字的形式进行修改权限,我们可以让g、u、o都具有r、w、x权限
我们在更改权限的时候要想好修改成什么,然后对应相应的数字即可三个一组,rwx权限分别对应421相加得7,,rw-对应42相加,r–对应4
2:进入目录的权限验证
(1)创建一个目录haha并使用chmod 000 haha给目录haha设置成无权限。
(2)我们先给user加上r权限,(即chmod u+r haha)但是通过图片我们看到访问依然被拒绝,所以进入目录不需要可读权限,需要别的权限,我们继续再给user加上其他的权限。
(3)我们在给user加上w权限(即chmod u+w haha)进入目录访问的权限依然被拒绝,由此我们可知道进入目录的权限也不需要写权限。
(4)我们再给user加上执行权限(即chmod u+x)我们发现可以进入目录,所以目录需要的是可执行性权限。
总结:
1)进入一个目录,对于普通用户至少需要可执行权限。
2)在目录中创建一个新的文件时,用户需要可写可执行权限。
3)在目录中创建文件并进行显示,用户需要可读可写可执行权限。
说明:
(1)如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录有-r权限。
(2)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令cd进入目录,但是由于目录没有读权限,所以在目录下即使可以执行ls命令,但是仍然没有全部读出目录下的文档。
四:在目录中实行增删查(touch、ls、rm、mv)等文件的动作,需要的权限
1:touch
(1)首先我们先删掉可读可写权限(chmod u- rw)我们进入haha中,使用touch创建一个新的test,发现权限不够。
(2)我们先给haha加上可读权限(chmod u+r)我们再次进入haha中,使用touch,发现权限还是不够。
(3)当我们再给haha删除可读权限加上可写权限(chmod u-r,chmod u+w)进入haha,再次使用touch,发现就可以创建一个新的test文件
2:ls
通过上面的touch test权限,进行ls一下,发现权限不够,这时我们返回上一级目录给new加上一个r权限,再次进入haha,ls一下发现出现了test。
3:mv:
当目录只有可读可执行权限时,修改文件名失败;当删除可读只有可写可执行权限时,文件名修改成功test->test2。
4:rm
当目录只有可读可执行权限时,删除文件test2失败;当删除可读只有可写可执行权限时,成功删除文件test2。
总结:
cd(进入目录)–所需权限x
touch(创建文件)–所需权限wx
ls (显示当前目录下的所有文件)–所需权限rx
mv(把文件名1修改为文件名2)–所需权限wx
rm(删除文件)–所需权限wx