目录
🌈前言
📁 文件的属性
📁 权限的概念
📂拥有者和所属组(角色):
📂用户(具体的人):
📁 权限的管理
📂1. chmod 指令:修改文件的权限。
📂2. chgrp 指令: 修改文件所属组。
📂3. chown 指令: 修改文件拥有者。
📁 一般文件权限
📁 目录权限
📁 粘滞位
📁 总结
🌈前言
本期[ Linux杂货铺 ]带来的 权限。我们学习Linux,就是在和文件目录这些打交道,所以搞懂它们的属性之一——权限就很重要,这篇文章将从不同角度带你深入理解权限的概念,如何修改权限,以及区分文件和目录权限的不同。
Linux最优秀的地方之一就是在于它的多人多任务环境,而为了让每个用户都具有保密的文件数据,因此文件权限管理就变得很重要了。Linux中将文件可读写的身份分为:拥有者(owner),所属组(group),其他人(other),且这三种身份各有读(read),写(write),执行(execute)等权限。那么这些身份和权限各有什么意义呢,下面我们来一一介绍。
📁 文件的属性
在介绍文件之前,我们先来看看文件都有什么属性把,使用 【ls -al】指令,来查看文件详细属性。
拓展:
ls是list意思,重点显示文件的文件名与相关属性,选型-al的意思就是列出所有的文件详细的权限与属性(包含隐藏文件)。
如下图所示,下图即文件属性示意图:
这篇文章将重点讲解文件类型权限,和文件拥有者,文件所属组这三栏内容。
我们说先来看第一栏文件类型权限,这里需要注意的是,这一栏一共有10个字符
拓:
第一个字符代表着这个文件是目录,文件或是链接文件等:
[ d ] 则是目录[ - ] 则是文件
[ l ] 则是链接文件
[ b ] 则表示为设备文件里面可提供存储的周边设备(可随机读写的设备)
[ c ] 则表示为设备文件里面的串行端口设备,例如键盘,鼠标。
接下来的字符中,以三个为一组,且均为【rwx】为组合,其中【r】代表可读,【w】代表可写,【x】代表可执行。如果没有权限,则用【-】代替。
第一组为文件拥有者具有的权限,第二组为所属组所有的权限,第三组是其他人所有的权限。
以上,我们就通过文件属性引入了权限,并对权限有了一定了解,接下来,我们就详细讲解一下什么是权限。
📁 权限的概念
权限,可以简单理解为限制一部分人的权利,而不限制另一部分人。这里的人就是:用户,所属组,其他人。权利:r可读,w可写,x可执行。
📂拥有者和所属组(角色):
1. 文件拥有者:简单理解为,谁创建了文件,谁就是文件的拥有者。
2. 文件所属组:用户组也很好理解,就是和我同组的人。用户组最有用的功能之一就是当你在团队进行协同工作的时候。每个账号可以有多个用户组的支持。
3. 其他人:当一个账户既不是文件的拥有者,又不属于文件所属组,那么这个账户就是其他人。
以上就是用户和用户组的概念,其实用户和用户组可以理解为角色卡,它是由一个一个的账户所扮演的,也就是我们下面所要讲的具体的人。
📂用户(具体的人):
1. root 用户:也就是我们常说的超级管理员,root账户在Linux中可是有很大的权限的,关于系统服务的文件通常只有root才能读写或执行。root基本不受系统的限制,无论文件的权限是什么,默认root都是可以读写的。
2. 普通用户:也就出了root账户以外的账户
拓:
在Linux系统中,默认情况下,所有系统上的账户与一般身份用户,以及root的相关信息都记录在/etc/passwd这个文件中,至于个人密码在记录在/etc/shadow这个文件中,此外,Linux中所有组名都记录在/etc/group中。
📁 权限的管理
权限值的表示方法,如下图所示:
📂1. chmod 指令:修改文件的权限。
+: 向权限范围增加权限代号所表示的权限-: 向权限范围取消权限代号所表示的权限=: 向权限范围赋予权限代号所表示的权限用户符号:u :拥有者g :拥有者同组用o :其它用户a :所有用户例如:# chmod u+w /home/abc.txt# chmod o-x /home/abc.txt
# chmod 664 /home/abc.txt# chmod 640 /home/abc.txt
📂2. chgrp 指令: 修改文件所属组。
如果要修改文件所属组,被修改的组名必须存在在/etc/group这个二维年鉴中,否则就会显示错误。
chgroup 【-R】 新的用户组名字 dirname/filename
选项与参数:
【-R】:进行递归修改,即连同子目录下的所有文件,目录都更新成为新用户组。
📂3. chown 指令: 修改文件拥有者。
同样,使用chown时,要注意,新修改的用户必须是存在在系统账户中的,也就是/etc/passwd这个文件中有记录的用户名才能修改。扩充的一点是,chown也可以修改用户组。
chown 【-R】 账户名称 文件或目录
chown 【-R】 账户名称:用户组名称 文件或目录
选项与参数:
【-R】:进行递归修改,即连同子目录下的所有文件,目录都更新成为新用户/用户组。
如果你要拷贝一个文件,使用cp命令后,还会复制执行者的属性与权限,如果我们想要修改呢,就可以使用chgrp和chown指令了。
拓:
新建文件夹默认权限 =0666新建目录默认权限 =0777但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是 mask ,则实际创建的出来的文件权限是 : mask & ~umask。umask是文件掩码的意思,也是一条指令,查看或修改文件掩码。# umask // 查看# umask 044// 设置
📁 一般文件权限
现在,我们知道了Linux系统内用户的三种身份(拥有者,所属组,其他人),以及他们所拥有的权限有哪些(r , w , x)。利用【ls -al】指令来查看。下面,我们来看一下文件权限对一般文件和目录文件有何不同。
对于一般文件:
● r (read) : 可读取该文件的实际内容,如读取文本文件的文字内容等;
● w (write) : 可以编辑,新增或是修改文件的内容。(注意,没有删除文件的权限);
● x (execute) : 该文件可以被系统执行的权限。
拓:
在Linux中,不以后缀名区分文件,对于.exe为后缀名的文件,Linux是不区分的,当然Linux中的软件是区分的。
因此,Linux中判断一个文件能否被执行,并不是以.exe后缀名来判断的。在Linux中如果一个文件想要被执行,必须符合一下两点:
1. 该文件能够被执行,也就是该文件是一个可执行文件。
2. 该文件是否具有【x】权限。
📁 目录权限
文件是用来存放实际数据的,而目录主要记录的就是文件名列表等信息,文件名与目录有强烈的关系。
对于目录:
r : 具有读取目录结构列表的权限,所以当你具有r权限时,表示你可以查询该目录下的文件名数 据。
w:表示你具有改动该目录结构列表的权限,即 建立显得文件与目录,删除已经存在的文件与目录,将已经存在的目录或文件更名,移动该目录内的文件和目录位置。
x:表示用户可以进入该目录,即该目录成为工作目录。
📁 粘滞位
可执行权限 : 如果目录没有可执行权限 , 则无法 cd 到目录中 .可读权限 : 如果目录没有可读权限 , 则无法用 ls 等命令查看目录中的文件内容 .可写权限 : 如果目录没有可写权限 , 则无法在目录中创建文件 , 也无法在目录中删除文件 .
为了解决这个问题,Linux引入了粘滞位的概念。
当一个目录被设置为 " 粘滞位 "( 用 chmod +t), 则该目录下的文件只能由一、超级管理员删除二、该目录的所有者删除三、该文件的所有者删除
📁 总结
权限就是限定用户可以执行哪些操作的,权限分为r,w,x,用户的角色分为所有者,所属组,其他人,而这些角色是由一个个普通用户和root用户来充当的,其中用户是可以修改的。文件的权限是对针对文件的内容,而目录的权限主要是针对文件名等内容。
以上,我们就对文件的权限进行了讲解,其中包含了一般文件的权限意义和目录权限的意义,已讲解了如何修改权限。
如最后,如果感觉这篇文章对你有用,欢迎点赞,收藏,关注;也希望大家找出文章不足,在评论区讨论交流,互相学习。Thanks♪(・ω・)ノ