深入理解Linux的权限

引言

当我们使用ls -al 查看文件内容的时候,会出现:
在这里插入图片描述
可以看到,最后面蓝色的字体是我们访问目录下的文件名字,那前面的那些毫无疑问就是该文件的一些信息。我们可以看懂一些,比如创建的时间,剩余的部分是什么?
在这里插入图片描述
最前面的一串字母:例drwxr-xr-x.表示的权限,那表示的又是谁的权限?所有人吗?还是仅仅root用户的?

首先,最前面的字符d表示文件类型;

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件
  • 当为[ p ] 则是管道文件
  • 若为[ s ] 则是socket设备文件
  • 若是[ l ]则表示为连结档(link file);(符号链接文件)
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);(块设备文件)
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。(字符设备文件)

紧接着的九个字符表示的都是权限

用户和用户组

Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限

1. 所有者
  • 由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。
  • 通俗的说,一般情况下,谁创建了文件,谁就是该文件的所有者
  • ls ‐al命令可以看到文件的所有者
2.所有组
  • 在Linux中,每个账户支持多个用户组
  • 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
3.其他组
  • 除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

我们在上面的图中可以看到,权限所涉及的字符有三个:r w x

  • r : 读
  • w :写
  • x : 执行

权限对文件的作用:

  • r:可获取文件的数据
  • w:可修改文件的数据
  • x:可将此文件运行为进程

权限对目录的作用:

  • r:可使用ls命令获取其下的所有文件列表
  • w:可修改此目录下的文件列表;即创建或删除文件,包括子目录
  • x:可cd至此目录中;且可使用ls -l来获取所有文件的详细属性信息

前面rwx一共有三组,代表了分别代表了所属用户、所属组、其他组三者对文件的权限

权限组合二进制数十进制数
0000
–x0011
-w-0102
-wx0113
r–1004
r-x1015
rw-1106
rwx1117
例如:
rwxr-xr-x     755 所有者拥有读写执行的权限,所属组拥有读、执行的权限,其他组拥有读、执行的权限   
rw-------     600 所有者拥有读、写的权限
r--r---w-     442 所有者拥有读的权限,所属组拥有读的权限,其他组拥有写的权限

如何修改文件的权限

Linux中有几个常用于用户组、所有者和其他组的权限的修改的命令:

  • chgrp 改变文件所属组
  • chown 改变文件所有者
  • chmod 改变文件的权限
改变文件所属组 chgrp
  • chgrp实际上就是change gruop的缩写
  • 要被改变的群组名必须要在/etc/gruop文件中才行,否则会出错。
    在这里插入图片描述
    这样就把test文件的所属组改为了lhz

改变文件所有者 chown
  • chown 实际上就是 change owner 的缩写
  • 改变的用户必须是系统上已经存在的用户,也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。

在这里插入图片描述
这样就把test.c的所有者改变为了lhz


改变文件权限 chmod

数字类型改变权限

在Linux中,改变文件的权限要用chmod命令。
命令格式:chmod xyz 文件或目录
在这里插入图片描述
上边将Makefile的权限从775改为664。
符号类型改变权限

  • u 所有者
  • g 所属组
  • o 其他
  • a 全部

格式:
在这里插入图片描述

在这里插入图片描述
上述将test文件的所属组的可读权限删除

在这里插入图片描述
上述将所有者,所属组,其他组都加上了可读权限。

权限的作用

权限对文件的作用
  • r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
  • w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
  • x (execute):该文件具有可以被系统执行的权限

那个可读 r 代表读取文件内容是还好了解,那么可执行(x)呢?这里你就必须要小心啦! 因为在Windows底下一个文件是否具有执行的能力是藉由『 扩展名 』来判断的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的!

至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对『文件的内容』而言,与文件档名的存在与否没有关系喔!

权限对目录的作用
  • r (read contents in directory):

表示具有读取目录结构列表的权限,所以当你具有读取®一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

  • w (modify contents of directory):

这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:

  • 建立新的文件与目录;
  • 删除已经存在的文件与目录(不论该文件的权限为何!)
  • 将已存在的文件或目录进行更名;
  • 搬移该目录内的文件、目录位置。

总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!

  • x (access directory):

咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是『cd』(change directory)啰!

简单的说,就是你可以指定你自己的文件可以让谁查看,谁可以修改,谁可以删除,要不然,你的秘密岂不都被大家知道了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值