【Linux】文件权限解读

简介: 【Linux】文件权限解读

使用者与群组


文件拥有者


有很多人有一个疑问就是linux有很多的使用者,那为什么还分群组,有什么用?

由于linux是多用户,多任务的系统,因为可能会常常有多人同时使用这部主机来进行工作的情况发生。

案例:当你将你的情书转为文件后,放在了自己的主文件夹里,你总不希望别人看见你的情书吧!这个时候把该文件设置成只有文件拥有者也就是你自己才可以看到内容。那么就算别人知道你有这个有趣的文件时,不过由于你设置的权限,别人也无法知道内容


群组


群组案例:

有俩个组protecta,里边有成员a,b,c和protectb里边有成员d,e,f

这俩个组之间存在竞争关系,同组之间可以互相修改数据,但是其他组员则不能看到自己组的文件,这个时候就使用上了群组

另外,如果有个teacher这个账号是protesta跟protectb这俩个组的老师,你可以设置teacher这个账号同时支持这俩个群组,也就说每个账号都可以有多个群组支持


一个案例解决群组跟使用者的关系


我们可以使用目前“家庭”的观念来进行解说喔! 假设有一家人,家里只有三兄弟,分别是王大毛、王二毛与王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,“王大毛家有三个人,分别是王大毛、王二毛与王三毛”, 而且这三个人都有自己的房间,并且共同拥有一个客厅喔!


使用者的意义:由于王家三人各自拥有自己的房间,所以, 王二毛虽然可以进入王

三毛的房间,但是二毛不能翻三毛的抽屉喔!那样会被三毛K的! 因为抽屉里面可

能有三毛自己私人的东西,例如情书啦,日记啦等等的,这是“私人的空间”,所以当

然不能让二毛拿啰!

群组的概念:由于共同拥有客厅,所以王家三兄弟可以在客厅打开电视机啦、 翻阅

报纸啦、坐在沙发上面发呆啦等等的! 反正,只要是在客厅的玩意儿,三兄弟都可

以使用喔! 因为大家都是一家人嘛!

这样说来应该有点晓得了喔!那个“王大毛家”就是所谓的“群组”啰, 至于三兄弟就是

分别为三个“使用者”,而这三个使用者是在同一个群组里面的喔! 而三个使用者虽

然在同一群组内,但是我们可以设置“权限”, 好让某些使用者个人的信息不被群组

的拥有者查询,以保有个人“私人的空间”啦! 而设置群组共享,则可让大家共同分

享喔!


其他人的概念


好了,那么今天又有个人,叫做张小猪,他是张小猪家的人,与王家没有关系啦! 这个

时候,除非王家认识张小猪,然后开门让张小猪进来王家,否则张小猪永远没有办法进

入王家, 更不要说进到王三毛的房间啦!不过,如果张小猪通过关系认识了三毛,并且

跟王三毛成为好朋友, 那么张小猪就可以通过三毛进入王家啦!呵呵!没错!那个张小

猪就是所谓的“其他人,Others”啰!

因此,我们就可以知道啦,在Linux里面,任何一个文件都具有“User, Group及Others”三

种身份的个别权限, 我们可以将上面的说明以下面的图示来解释:

屏幕快照 2022-05-17 上午12.24.24.png


文件的拥有者、群组与 others 的示意图我们以王三毛为例,王三毛这个“文件”的拥有者为王三毛,他属于王大毛这个群组, 而张小猪相对于王三毛,则只是一个“其他人(others)”而已。

不过,这里有个特殊的人物要来介绍的,那就是“万能的天神”!这个天神具有无限的神力, 所以他可以到达任何他想要去的地方,呵呵!那个人在Linux系统中的身份代号是“root ”啦!所以要小心喔!那个root可是“万能的天神”喔!


Linux文件权限概念


在上边了解了使用者跟群组后,当你的屏幕出现Permission deny时,不要担心,肯定是权限的问题,那么下来咱们就开始文件权限的解读


Linux文件属性


使用命令ls -al查看一下

屏幕快照 2022-05-17 上午12.24.56.png



文件属性的示意图


第一栏代表这个文件的类型与权限(permission)

这个地方最需要注意了!仔细看的话,你应该可以发现这一栏其实共有十个字符

屏幕快照 2022-05-17 上午12.25.03.png

第一个字符代表这个文件是目录,文件,或链接文件等等

当为【d】则是目录

当为【-】则是文件

若是【l】则表示为链接文件(link file)

若无【b】则表示为设备文件里边的可提供存储的周边设备

若为【c】则表示为设备文件里边的序列设备,例如鼠标,键盘

接下来的字符,以三个为一组,且均为“”rwx“”的三个参数组合。其中【r】代表可读(read),【w】代表可写【write】,【x】代表可执行【execute】。需要注意的是这个的权限位置不会改变,如果没有权限,就会出现减号【-】而已。下面给一个例子来解释

屏幕快照 2022-05-17 上午12.25.08.png

第一个字符d表示是一个目录

第一组为文件拥有者可具备的权限,该目录的拥有者权限为可读,可执行,没有写的权限

第二组为群组的权限,该目录的群组权限为可读,可执行,没有写的权限

第三组为其他人权限,权限为可读,可执行,没有写的权限

第二栏表示有多少文件名链接到此节点

第三栏表示这个文件或目录的拥有者账号

第四栏表示这个文件的所属群组

第五栏为这个文件的容量大小,单位为bytes

第六栏为这个文件的创建日期或者最近修改的日期

第七栏为这个文件的文件名

例题1:若有一个文件的类型与权限数据为“-rwxr-xr–”,请说明其意义为何?


我们先把整个类型与权限数据分开查阅,将十个字符整理成如下


[-][rwx][r-x][r–] > 1 234 567 890

1为:代表这个是一个文件

234为:拥有可读,可写,可执行

567为:可读,可执行

890为其他使用者权限,只有可读权限

同时注意,rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就会以减号【-】显示


另外,目录与文件的权限意义并不相同,这是因为目录与文件所记录的数据内容不相同。


例题2:假设test1, test2, test3同属于testgroup这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何?


-rw-r–r-- 1 root root 238 Jun 18 17:22 test.txt

-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai

文件test.txt的拥有者为root,所属群组为root,权限root这个账号只有可读,可写

文件ping_tsai拥有者为test1,所属群组为testgroup,权限可读,可写,可执行。而通群组的test2和test3俩个人同样是testgroup的群组账号,但是权限只有可读,可执行。至于没有加入这个群组只有可读权限

例题3:承上一题如果我的目录为下面的样式,请问testgroup这个群组的成员与其他人(others)是否可以进入本目录?


drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/

文件拥有者test1【rwx】可以在本目录中进行任何工作

而testgroup这个群组【r-x】,例如test2,test3可以进入本目录进行工作,但是不能再本目录进行写入动作

至于other的权限中【r–】虽然有r,但是由于没有【x】的权限,因为others的使用者,并不能进入此目录工作


群组用途


系统保护的功能:

举个简单的例子,在你的系统中,关于系统服务的文件通常只有root才能读写或者是执行,例如/etc/shadow这一个帐号管理的文件,由于该文件记录了你系统中所有帐号的数据, 因此是很重要的一个配置文件,当然不能让任何人读取(否则密码会被窃取啊),只有root才能够来读取啰!所以该文件的权限就会成为[ ---------- ]啰!咦!所有人都不能使用?没关系,root基本上是不受系统的权限所限制的, 所以无论文件权限为何,默认root都可以存取喔!

团队开发软件或数据共享的功能:

此外,如果你有一个软件开发团队,在你的团队中,你希望每个人都可以使用某一些目录下的文件, 而非你的团队的其他人则不予以开放呢?以上面的例子来说,testgroup的团队共有三个人,分别是test1, test2, test3,那么我就可以将团队所需的文件权限订为[ -rwxrws— ]来提供给testgroup的工作团队使用啰!(怎么会有 s 呢?没关系,这个我们在后续章节再讲给你听!)

未将权限设置妥当的危害:

再举个例子来说,如果你的目录权限没有作好的话,可能造成其他人都可以在你的系统上面乱搞啰! 例如本来只有root才能做的开关机、ADSL的拨接程序、新增或删除使用者等等的指令,若被你改成任何人都可以执行的话, 那么如果使用者不小心给你重新开机啦!重新拨接啦!等等的!那么你的系统不就会常常莫名其妙的挂掉啰! 而且万一你的使用者的密码被其他不明人士取得的话,只要他登陆你的系统就可以轻而易举的执行一些root的工作!


相关文章
|
15天前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
186 65
|
3天前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
31 5
|
3天前
|
Linux Shell 数据库
Linux文件查找新姿势:总有一种你没见过
【10月更文挑战第18天】文件查找是Linux用户提升工作效率的重要技能。本文介绍了几种实用的文件查找方法,包括基础的`find`命令、快速的`locate`和`mlocate`、高效的`fd`工具、以及结合`grep`和`rg`进行内容搜索。此外,还提供了编写Shell脚本和使用图形界面工具的建议,帮助你更灵活地管理文件。
20 3
|
1月前
|
Linux
linux中查看某个文件夹下文件的个数和大小
这篇文章介绍了在Linux系统中使用各种命令(如`stat`、`wc`、`du`和`ls`)来查看文件夹下文件的个数和大小的方法。
463 4
linux中查看某个文件夹下文件的个数和大小
|
22天前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
35 2
|
14天前
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
30 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
|
1天前
|
Linux 开发工具 Perl
Linux命令替换目录下所有文件里有"\n"的字符为""如何操作?
【10月更文挑战第20天】Linux命令替换目录下所有文件里有"\n"的字符为""如何操作?
9 4
|
10天前
|
Linux Shell 数据库
Linux文件查找新姿势:总有一种你没见过
文件查找是Linux用户提升工作效率的关键技能。本文介绍了几种不常见的文件查找方法,包括使用`find`结合`column`美化输出、利用`locate`和`mlocate`快速查找、编写Shell脚本自动化任务、使用现代工具`fd`以及结合`grep`和`rg`进行内容搜索。此外,还推荐了几款图形界面搜索工具。掌握这些技巧,让你的文件查找更加高效便捷。
40 2
|
17天前
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
13 0
Linux c/c++文件的基本操作
|
22天前
|
移动开发 Linux
Linux 文件与目录管理
Linux 文件与目录管理
17 3