Linux权限分析
在学习Linux的权限之前,我们先来理解几个概念:
可读,可写 、可执行
Linux的文件和目录有以下三种方式:
r 、w 、x:可读,可写 、可执行
r-可读(read)
w-可写(write)
x-可执行(execute)
所有者 、所属组 、其他人
Linux的文件和目录又可以有三个所有者概念:
u、g 、o: 所有者 、所属组 、其他人
u:所有者
g:所属组
o:其他人
好了,开始管理我们的权限了,要管理权限,首先得知道我们的权限才能去管理吧,不然从何谈管理,
下面来解读我们的权限:
我们以/目录下为例,cd / 就进入根目录了。先来ls一下下,要带-l哦,或者直接 ls -l /也可以,显示文件或目录的详细信息
ls -l /
发现没有?前面是不是一堆天书?什么 drwxr-xr-x ?下面我们就拿第一条来开刀吧
dr-xr-xr-x : 我们可以把它拆开来解读 , d r-x r-x r-x
d:代表的是文件类型,在Linux中,常用的文件类型为以下三种:
d :目录 directory
- : 二进制文件 binary
l : 软链接文件 link
所以这里的d就是指名了这是一个目录文件。
r-x:这里代表的是这个文件或目录所有者所拥有的权限,r是可以读,不能写,所以用-代替,x是可以执行,说明这个文件或目录中,
所有者是可以读,可以执行,不能写
r-x :同样的道理,第二个代表的是所属组对这个文件的权限,也是可以读,可以执行,不能写
r-x :第三个就是其他人对这个文件或目录的权限了。
所以dr-xr-xr-x翻译起来就是这样的:这是一个目录文件,它的所有者可以对它读和执行,不能写 、所属组可以对它读和执行,不可以写 ,
其他人可以读和执行,不能写。
来个例子:
这是一个目录文件,所有者可读可写可执行,所属组可读可执行 、不能写,其他人可读可执行 、不能写。
再比如:
-rw-r--r--:这是一个二进制文件,所有者可读可写 、不能执行,所属组可读 、不能写 、不能执行,其他人可读 、不可写 、不能执行。
好了既然知道了这些权限,那么所有者是谁呢?属于哪个组呢?
只有留心观察就知道了,以及打印出来给我们了:
接下来就是要管理编辑权限了:
权限管理命令:chmod命令
命令名称:chmod
命令英文原意:change the permission mode of a file
命令所在路径:/bin/chmod
执行权限:所有用户
语法: chmod 【mode】 文件或目录 此处mode是啥???是数字
功能描述:改变文件或目录权限
mode是数字怎么来的呢?
前面我们说了一个文件或者目录分别有所有者 (u)、所属组u(g)和其他人(o)对其的权限,
而权限又分为:(r)可读 、(w)可写 、(x)可执行
为了方便表示,linux用了一个很简单的方法来区别,r用4表示,w用2表示,x用1表示,把他们对号入座:
r - 4
w - 2
x - 1
所以
其中,第一个字符d表示类型是目录,这里不考虑,接下来的三个三位数(r-xr-xr-x)就可以这么转换啦!!!
(4+0+1)+(4+0+1)+(4+0+1)= 555
这样意味着555能代表啥?你懂了
其实在数字和权限之间就是按这个规则来,数字转权限和权限转数字
- 数字--->权限
例如 764 :对应的就是将7分解为4 、2 、1,将6分解为4 、2 、0,将4分解为4 、0 、0,所有对应权限为rwxrw-r--
654: 6=4+2+0, 5=4+0+1, 4=4+0+0 结果为:rw-r-xr--
- 权限--->数字
例如 drwxrw-r--: 第一位d代表类型,不参与计算,rwx=4+2+1=7,rw-=4+2=0=6, r-- = 4+0+0=4最终结果为764
好了,,来个练习,
drwxr-xr-x : d不管 , rwx : 4+2+1 =7, r-x:4+1 =6, r-x:4+1=6, 所以最终结果为766
我们先创建个dir目录,然后来改变这个目录的权限
初始时: drwxr-x--- :是多少? 750
我想它的权限为: drwxrwxr-x 是多少 775
好了,有数字了,开始干吧 chmod 775 dir
怎么样,达到了效果了吧!!!是不是很方便快捷高大上。
那么再来做个实验,我创建个文件来试试
再改变下文件的权限
一样也达到了效果!
大家有没有注意到,我创建目录和文件,默认的权限是什么呢?这目录和文件默认的权限为什么不一样呢?
看看初始给我们默认的权限:
其实linux默认的权限是通过这个命令可以查看到:
什么???0027,貌似配不出合理的权限啊,别急,第一个0是特殊权位,具体啥也不不知道,
看后面三位027,这也不对呀,对了,忘了用777去减,其实它打印出的是正确的,需要我们用777-027 = 750
把750转成我们的权限信息,看看 : 7= 4+2+1 , 5 = 4+1 , 0就是没了,所以权限信息是:rwxr-x---
看看新建的目录是不 drwxr-x---,完全正确哦!!!
可是文件呢?
,
不对了吧??为什么,原来新创建的文件都是不可执行的,也就是说x是不能有的,所以全部去掉x,其实这就是linux安全的一个体现吧
如果我想改变这个初始的权限呢?一般不建议这么做,如果非得这么做,我们可以改, 命令是umask 0025呀,随便计算就可以了。