阅读本文大概需要 3 分钟。
在linux系统中,最基本的权限分为三种:读、写、执行。这些权限作为目录或者文件的属性,被记录在目录或者文件上。根据记录的内容不同,我们的用户和用户组获得这个目录或者文件相对于的权限。我们可以通过命令【ls-l 路径】来查看这个属性。如果查看目标是一个目录的话再带上一个-d参数。
如上图所示,命令的输出中从第二位开始,每三位为一组,记录了不同用户对该文件拥有怎样能力。其中前三位,对应该文件的所属人,表示其所属人对其拥有怎么样的权限;中间三位,对应所属组,但值得注意的是如果更准确一些的描述的话,应该说是这个用户组内的成员对这个文件拥有怎样的权限;最后三位对应的就是其他人了,即既不是这个文件的所属人也不是这个文件所属组内的成员的用户对这个文件拥有怎样的权限。不过这个命令的输出中除了这九位字符,他们后面的那个点,也记录了一些权限信息,这个我们后面再说。
学会了怎么看权限,那么接下来我们就要来学习大招了——这些字母到底代表着什么?
由于对于目录和文件这几个字母所对应的含义并不相同,所以我们接来下分组讨论:
针对文件而言
r 读权限:表示可以读取到文件中写的内容,即可以对文件执行类似于cat等查看文件的命令;
w 写权限:表示可以对文件中的内容进行修改,即可以使用类似于vim编译器等方式修改文件内容,并且能保存;
x 执行权:执行权是一个特殊的权限,大部分的文件是没有执行权的。一般只有一些脚本,命令等可以用于执行的文件,才会被赋予执行权,那么拥有这个权限文件,才能被运行。比如,如果黑客向我们的计算机中植入了一个木马病毒,这个木马病毒想要被运行且产生一些破坏,那么黑客就必须想办法给这个木马病毒赋予一个执行权,并使用相对于的用户(一般是root,所以请保护好自己服务器的root密码)去执行,否则这个木马病毒是没有能力破坏我们的系统的。
针对目录而言
r 读权限:表示可以看到目录中的内容,即可以对目录执行ls命令;
w 写权限:表示可以向目录中写入内容,例如在目录内执行mkdir等创建的操作不会被拒绝;
x 执行权限:表示可以进入该目录,即可以对这个目录执行cd命令。
* - 无该权限:即权限位置使用-代替对应的字母,表示没有这个权限,文件与目录通用。
值得注意的是,我们的操作系统中存在一个皇帝级别的用户,那就是root,这个用户是无视上面所述的三大基本权限的。即使root没有对应的权限,root用户也能强制读取修改文件和目录。但是文件的执行权除外,如果文件没有执行权,root用户也不能以正常的方式使其执行,不过,对于脚本文件,即使没有执行权,root用户仍然能使用【sh 脚本路径】的方式使其运行。定期修改和设置复杂的root用户密码,是任何一名系统管理员必做的事情。
权限的另一种表达方式
从上面的截图我们看出,权限是是以rwx-的组合来表达的。但是我们与其他人交流时,总不能将这9位权限读一遍吧,这也太麻烦了,所以呢我们权限还有另外一种表达方式,即数字表达法。
表达方式如下:
那么在表达时候,我们只需要将其三位为一组相加求和就行了。例如权限rwxr-xr-x即可表达为755
权限的修改方式
修改权限使用命令为chmod,这个命令一共有两种用法,我们可以来看一下:
公式法
如上图所述,公式法的主要用法为【chmod 表示权限的公式路径】。
该用法中的公式有三部分组成,中间没有空格。
其中第一部分为who,即要修改谁对目标的权限,u表示所属人,g表示所属组,o表示其他人,a表示全部人即每个位置都要修改。
第二部分为how,即要怎么修改,+表示给予一个权限,-表示去掉一个权限,=表示等于一个权限
第三部分为what,即要改什么,r表示读,w表示写,x表示执行。rwx三位写全的情况一般是与第二部分的=连用,表示将对于位置直接修改为对于的权限,没有权限使用-表示,或者直接不写。
例如:
数字法
chmod 表达权限的三位数字路径
这种用法非常简单,即提前算好要修改的权的三位数字为多少,直接将数字跟在chmod命令后面即可,例如
chmod 753 /tmp/testfile 表示修改文件权限为753,即修改后的权限如下图:
无论是是数字法还是公式法,都可以快速修改权限,大家可以选择合适自己的方法去修改权限。不过通过命令使用的方法,我们不难看出公式法更适合去修改那种细节上的权限,比如我们想给予所属人写权限,而不讨论其他权限,就可以选择使用公式法。而如果要权限进行大范围的修改,数字法便是最好的选择。适当的选择合适的方法,可以大大的提高我们的工作效率,使工作起来更轻松。
领取专属 10元无门槛券
私享最新 技术干货