Linux最优秀的地方之一就是在于它的多人多任务环境而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了。Linux一般将文件可存取的身份分为三个类别,分别是拥有者(owner)、所属群组(group)、其他人(others),且三种身份各有 读(read)、写(write)、执行(execute)等权限。
在本章进入正题之前,我们需要先了解一下文件拥有者、用户组、其他人的概念。
为了便于理解,咱来举个栗子
假如你买了一本参考书,这本书相当于Linux里面的文件;而你就相当于文件拥有者;而你所在的学习小组就相当于用户组,你是属于这个用户组的;其他除了你学习小组的成员就相当于其他人。这么说,你可以理解嘛?
文件------参考书
文件拥有者------你
用户组------你所在的学习小组的成员
其他人------你所在学习小组成员外的所有人
Linux文件属性:
在这里我们只对权限这一栏进行解释,其他的除了链接(后面章节具体介绍)就是图片上的字面意思,在这里就不过于赘述,如果大家有啥不明确的,也欢迎私信我哦~
权限:drwxr-xr-x 我们来解析一下这段代表的含义
①第一个字符d代表文件的类型
我们再来看看字符代表的具体文件类型
【d】代表目录
【-】代表文件
【l】代表链接文件,即快捷方式
【b】代表块设备,比如U盘,可存储东西
【c】代表设备文件(字符文件),比如键盘、鼠标,不可存储东西
②接下来的字符中以3个为一组,且均为【rwx】的三个参数的组合。其中【r】代表可读(read)、【w】代表可写(write)、【x】代表可执行(execute)。注意,三个权限的位置不会改变,如果没有权限,就会出现减号【-】。
接下来我们来看看剩下字符代表的含义:
前三个字符:rwx 代表文件拥有者的权限,这里即可读、可写、可执行
中间三个字符:r-x 代表文件所属用户组的权限,这里即可读、可执行,但不能写
后三个字符:r-x代表其他人的权限,权限和用户组权限相同
如何修改文件属性与权限
(1)Chgrp:改变文件所属群组
【root@localhost~】# chgrp [-R] dirname/filename
选项与参数:
-R:进行递归修改,亦即连同子目录下的所有文件、目录都更新成为这个用户组之意,常常用在修改某一目录内所有的文件的情况
举个例子:
我们可以看到initial-setup-ks.cfg这个文件的用户组现在属于root
我现在想更改他的用户组为users,应该这么做:
嘿~是不是很简单,通过上图红色框框里的chgrp命令,initial-setup-ks.cfg这个文件的用户组就更改成了users。
(2)Chown:改变文件拥有者
【root@localhost~】# chgrp [-R] 账号名称 文件/目录
-R:进行递归修改,亦即连同子目录下的所有文件、目录都会修改
举个栗子:
我们可以看到initial-setup-ks.cfg这个文件的拥有者现在属于bin
现在我想把它的拥有者变成root,应该这么做:
嗯,和更改用户组一样对吧,不过chown作用可不止这些~下面让我们来看看chown的其他作用吧下一个错别字
chown除了可以改变拥有者外,还可以同时改变用户组
【root@localhost~】# chown 拥有者:用户组 文件名
举个栗子:
在拥有者和用户组之间加个“:”,就可以同时更改拥有者和用户组啦
(3)Chmod:改变文件的权限
(1)数字类型修改文献权限:
①Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 其中,可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
-:0
②每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
③【root@localhost~】# chmod 【-R】 xyz 文件或目录
选项和参数:
xyz:就是刚刚提到的数字类型的权限属性,为rwx属性数值的相加
-R:进行递归修改,亦即连同子目录下的所有文件、目录都会修改
演示一下:
如果将.bashrc这个文件所有权限都设置启动,我们可以这么执行
如上图所示,在chmod执行之前,文件.bashrc的权限为rw-r--r--
在命令chmod执行后(黄色框框),文件.bashrc的权限更改为rwxrwxrwx
(2)符号类型修改文件权限
那么我们就可由u(user),g(group),o(others)来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x。也就是可以使用底下的方式来看:
举个栗子:
我们看到.bashrc权限通过上面的chmod 变成了rwxrwxrwx,此时我要想把它的权限更改成之前的rw-r--r--,该怎么做呢?
没错,两种以上两种方法都可以达到这个目的~
好啦,这次就到这里了,下次我们会讲到Linux目录配置。临近学期期末,杂事比较多,可能要鸽那么几天,我们下次见!