权限,就是对某事项进行决策程度和范围,通俗来说,就是规定哪些事情能做、哪些事情不能做。那么,在Linux中有哪些基本权限呢?进入目录需要哪些权限、在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作需要哪些权限?
一、Linux中的基本权限(r、w、x)
1、读(r/4):read对于文件来说,具有读取文件内容的权限;对于目录来说,具有浏览该目录信息的权限。
2、写(w/2):write对于文件来说,具有修改文件内容的权限;对于目录来说,具有删除、移动目录内文件的权限。
3、执行(x/1);execute对于文件来说,具有执行文件的权限;对于目录来说,具有进入目录的权限。
(*注:每条权限后边的数字是一个八进制数字,具体用法后面在本文后面会进行阐述。)
二、权限的表现形式
1、通过字母和“-”来表示
在命令行输入pwd并按回车键执行,会进入到目前的目录;接着在命令行输入ls并执行,就会显示出当前目录下的子目录;再在目录行输入ll(字母“L”的小写)并执行,就会看到目前目录下所有项目的权限。具体情况请看下面的截图。 图一 权限的表现形式
大家可以看到,在图片的第一列显示的就是文件的可操作权限,这些操作权限其实是按照拥有者u(电脑的主人)、所属组g(可以理解为拥有者的队友)、其他o(可以理解为你的团队以外的人)的权限顺序依次组合。拿第一个文件的权限来说,它的拥有者u具有的操作权限是读和写,所属组g拥有的权限也是读和写,其他o只拥有读的权限。参照“一、Linux中的基本权限(r、w、x)”就可以大概知道哪些人对于这个文件拥有什么操作权限。
2、通过数字来表示
在这里,我们对“一、Linux中的基本权限(r、w、x)”中遗留下来的问题进行解释。
拥有者u、所属组g、其他o所拥有的权限其实可以用一个八进制数字来表示,也就是说,一个文件的权限可以通过三个八进制数字来表示,例如777。那么,777所表示的汉译英该怎么理解呢?要理解他所代表的含义,应该先把它转化为对应的二进制数字:7对应的二进制数字是111,这个表达的意思是r、w、x三种权限都具有,那么777表示的意思就是这个文件的拥有者u、所属组g、其他o都具有r、w、x这三种权限。
三、如何修改权限
1、以字母形式修改。
很简单,在这张图片中,利用chmod命令,通过对u、g或o加减想要的权限或是权限的组合(wr)来实现对文件权限的更改。修改之后,大家可以再次运用ll命令来查看修改后的权限。
2、以数字形式修改
也很简单,通过这张图片中的命令,我们可以让u、g、o都拥有r、w、x权限。如果把图片中的777换成332,那么命令执行之后在通过ll命令查看文件权限,那么文件的拥有者u和所属组g就会拥有w、x权限,其他o则用用的是w权限。
四、进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.
先给大家放一张图:
图二 命令的权限
在图中我们可以看到,当去掉拥有者的执行权限后,运用cd命令无法进入code目录(这里的code目录只是个例子),第二行显示的意思是权限不允许,当我们给拥有者加上执行权限后,就可以进入了,此时没有任何错误提示。所以接下来,大家可以自行权限进行修改,并对下面的命令进行试验。
cd:a.语法 cd 目录名(进入目录) b.所需权限x
touch:a.语法 touch 文件名(创建文件) b.所需权限wx
ls:a.语法 ls (显示当前目录下的所有文件) b.所需权限rx
rm:a.语法 rm 文件名(删除文件) b.所需权限wx
mv:a.语法 mv 文件名1 文件名2(把文件名1修改为文件名2) b.所需权限wx