zoukankan      html  css  js  c++  java
  • 关于linux的文件权限

      最近看了一些关于linux下文件权限的相关资料,比如鸟哥的linux私房菜,鸟哥给人的感觉就是通俗易懂,简单明了。文件权限在linux下是个很重要的概念,我觉得有必要把这段学习的心得记录下来,以便于以后翻阅。

           linux是多用户系统,他支持一个系统设置多个用户,并且还能支持多用户同时操作linux系统。当然,可想而知,如果一个系统能被这么多的用户操作,肯定会发生许多混乱问题和安全性问题。linux是利用用户与用户组及其权限来管理与协调多用户之间的工作的。

           用户与用户组的概念,想必直接把鸟哥书上那个图贴上来不用做多解释也能明白其中的意思,书中的图如下:

     

           王大毛、王二毛和王三毛都是用户,三个都在一个用户组里面。一个目录或者一个文件具有owner、group、others三种身份的权限,一个文件(目录)的创建者即为文件(目录)的owner,而与文件(目录)的owner在同一个用户组的其他人即为group用户,不在owner所在组的其他用户即为others用户。如图中所示,一般而言,你的家人和你是同一个用户组的,而其他家的人是属于其他用户组的。很显然,对于一个你的东西,你对这个东西具有一种权限,而你的家人又有另一种权限,其他家的人又有另一种权限,这就是所谓的owner、group和others。当然,这个分组是可以改变的,他们的权限也是可以改变的,你也可以将王二毛移动到others组中或者让王二毛同时在两个组中。

    不得不提一下的是图中那个天神了,这个天神具有无限的神力,也具有最高的权利,所以他可以到达任何他想要去的地方,可以做任何他想做的事。这个天神就是root用户了。所以一定要小心使用root用户。

    接下来开始讲文件的权限。很多时候我们在查看一个目录中的列表的时候会看到如下所示的内容:

     

    那么罗列出来的几项分别代表什么意思呢?这里再放一个鸟哥书上的图:

     

    第一列代表这个文件的类型与权限:

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

    1. 若是[d]则是目录
    2. 若是[-]则是一般文件
    3. 若是[l]则表示为连接文件
    4. 若是[b]则表示为设备文件里面的可供存储的设备
    5. 若是[c]则表示设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)

    最常见的就是目录[d]和一般文件[-]。

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

    1. 第一组为“文件所有者的权限”
    2. 第二组为“同用户组的权限”
    3. 第三组为“其他非本用户组的权限”

    第二列表示有多少文件名连接到此节点

    第三列表示这个文件(目录)的owner的用户名

    第四列表示这个文件的所属用户组

    第五列为这个文件的容量大小,默认单位为B

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

    最后一列为该文件名

     

    那么,知道了用户和用户组做拥有的权限表示之后,怎么去看他具有哪些权限,可以对文件做什么事情呢?可以通过查看文件所有者和文件所有者所在组可以判断出某用户对文件的权限,若与文件所有者在同一个用户组,则对文件拥有的权限为权限表示中的第二组权限,若不与文件所有者在同一个用户组,则对文件拥有的权限为权限表示中的第三组权限,通过用户所有者及其所在组判断得出某用户具有的权限可以分为为以下情况。

    一、对于目录(directory

           我将目录比喻成所有窗户都将窗帘拉上的一个房子

           (1)- - - 这种情况代表该用户对该目录不具有任何权限,也就像你是一个外人只能到这个房子门口不能干任何事情,不能看到房子里面有什么,没有钥匙打开房子进去,更不能进去使用房子里面的任何东西;

           (2)r - -这种情况代表改用户对该目录具有读的权限(可以罗列出目录中的部分或全部内容),就像房子的主人允许你拉开他们家的窗帘看看房子里面有什么东西,不一定能看到全部,同样也不能进入房子里,不能使用房子里面的任何东西;

           (3)- w – 这种情况代表该用户对该目录具有写的权限,可以修改、删除、更新目录和目录中的文件或目录。但是按理来说,不应该出现这种权限,因为对一个目录只有写权限而没有读权限和执行权限就没什么意义了,看不到目录中有什么内容,也不能进入到目录中,我的理解是只能修改这个目录的目录名,就好像告诉你你可以使用房子里的东西,但却不告诉你里面有什么,也不让你进去房子。

           (4)- - x这种情况代表改用户对该目录具有执行的权限,目录的执行权限代表的是用户能否进入该目录成为工作目录的用途,所谓工作目录就是你目前所在的目录。如果你对一个目录不具有执行权限那么你不能切换到那个目录中也即不能以命令“cd 目录”来 那个目录中,因为你不具有权限进入那个目录。而只有执行权限则就像房子主人给你钥匙让你进去但却把所有东西都遮起来或者藏起来不让你看到也不让你使用;

           (5)r w - 这种情况代表改用户对该目录具有读和写的权限,将前面具有单个权限读和单个权限写的权限加起来就是这个的权限了。如果对一个目录没有了执行权基本上写权限有了也没用,所以这种情况就像拉开窗帘并告诉你里面的东西你随便用,但却不让你进入房子一样。

           (6)r – x 读、执行权限,这是目录在建成之后对同组用户和其他用户默认具有的权限,也是目录最常见的权限。可以读也可以进入目录中而不让除owner之外的其他用户去修改或删除owner的文件,这就相当于主人敞开门让你进去随便参观。

           (7)- w x 写和执行权限,在我理解看来这种权限也是没意义的,让用户进入目录页让用户具有写权限却没有读权限。那不是什么都看不到来作业?就好像进了一个空房子一样,虽然里面有东西也可以使用;

           (8)r w x 这种情况代表用户对该目录具有所有权限,可读、可写可执行,可以对该目录进行任何操作,查看目录中内容、进入到目录中,删除、更新、新建文件或目录。当然都是仅对该目录而言的,目录中的文件或者是目录又会有自己的权限定义

    二、对于文件(file

           文件就是一个具体的物品了,总的来说跟上面目录的权限都差不多,但还是有一些不一样的,文件的权限相对来说更好理解一点。

    r代表可以读文件内容,w代表可以删除、更新、修改文件内容,而x代表可以执行文件,文件权限和目录权限的不同主要体现在执行权限上。目录执行之前说过了,文件的执行权限就是代表可以执行该文件,这是与目录最大的不同之处。

    windows下面的一个文件是否具有执行的能力是通过“扩展名”来判断的,例如.exe,.bat,.com等,但是在linux下面,我们的文件是否能被执行则是由是否具有“x”这个权限来决定,而跟文件名是没有绝对的关系的。那么文件要具有“x”权限才会有执行权限,而如果没有“x”权限,不管文件类型是怎样的,都不具有执行权限,不能被执行。

     

    几个关于文件权限的命令chmod、chgrp、chown;

    今天讲linux文件权限就讲到这里了,研读不够深,讲不到太深太广的东西,也不能讲得很好。

  • 相关阅读:
    数据库从别的数据库查询一张表在插入到新的数据库里面
    html5 学习随笔 1
    .net MVC 学习笔记 (一)
    Html5 本地存储
    .net MVC 学习笔记 (二)
    蝙蝠侠解救罗宾的问题
    求职的第一面Harman
    求职第七面——烽火通讯
    求职的第二面—Samsung
    求职第六面——瑞星微电子
  • 原文地址:https://www.cnblogs.com/zhiqiangzhang37/p/3209580.html
Copyright © 2011-2022 走看看