Linux文件权限

原文地址:https://blog.qjm253.cn/?p=436


用户与用户组的概念

  • 文件所有者

    文件所有者拥有对自己所创建文件的所有权限,有权修改所属文件的三类访问者的访问权限(文件所有者,用户组,其他人)

  • 用户组

    同一用户组内的用户可以互相访问各自公开给同组用户的文件,一般来说,属于同一个用户组的用户会比不属于用户组的其他用户对本组成员所属文件拥有更多的访问权限。
    一个用户组可以包含多个用户,一个用户可以同时参与多个用户组

  • Linux 用户身份与用户组记录的文件

    • /etc/password : 默认情况下,所有系统上的账号与一般用户身份记录在此文件内
    • /etc/shadow : 记录用户的个人密码(当然是加密之后的)
    • /etc/group : 记录所有组名

Lunux 文件权限

  • 文件属性分析

    在任意目录下执行下面代码,便可查看当前目录下所有文件的属性

    ls -la
    
    文件属性说明
    • 第一列(文件权限)代表这个文件的类型与权限

      • 各部分的含义
      // 文件权限的格式如下
      -rwxrwx---
      
      // 可以分下面的四部分看
        -             rwx                 rwx             ---
      文件类型        文件所有者权限     文件所属用户组权限   其他人对此文件的权限
      
      • 文件类型
        • d: 目录
        • -: 文件
        • l: 连接文件
        • b: 设备文件里面的可供存储的接口设备
        • c: 标识设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)

      需要注意的是,目录与文件的权限意义并不一样,上面讨论的是文件的权限

    • 第二列(连接数)代表有多少文件连接到此节点(i-node)
      i-node中记录了一个文件的权限和属性等信息,每个文件名会关联到一个具体的i-node。连接数代表有多少个文件名连接到同一个i-node上

    • 第三列(文件所有者)表示这个文件或目录的“所有者账号”

    • 第四列(文件所属用户组)表示这个文件所属用户组的名字

    • 第五列(文件大小)表示这个文件的大小,默认单位为B

      ps: 可以在ls的时候加上参数-h,会以更可读的格式显示文件的大小

    • 第六列(文件最后被修改时间)表示这个文件的创建日期或者是最近的修改日期

    • 第七列(文件名)表示该文件的文件名

  • 改变文件的属性与权限

    • chgrp: 改变文件所属用户组
    • chown: 改变文件所有者
    • chmod: 改变文件的权限
    • 改变文件所属用户组:chgrp

      # 用法
      chgrp [-R] <用户组名> <目录名或文件名>
      
      # 参数说明
      -R : 进行递归(recursive)的持续更改,即连同子目录下的所有文件目录都更新为指定的用户组。
           常常在更改某一目录下所有文件的情况下使用 
      
    • 改变文件所有者:chown

      # 用法
      chown [-R] <账号名称> <文件名或目录>
      或者
      chown [-R] <账号名称:组名> <文件名或目录>
      
      # 参数说明
      -R : 进行递归(recursive)的持续更改,即连同子目录下的所有文件都要更改
      
    • 改变文件权限:chmod

      ##########################################
      ### 用数字类型来改变文件权限
      ##########################################
      # 用法
      chmod [-R] xyz 文件或目录
      # 参数
      xyz: 分别代表用户、用户组、其他用户的用户权限的二进制表示(以rwx为顺序,有则对应位置为1,否则为0)值(例如:rwx: 7 / -wx: 3 / -w-: 2)
      -R: 进行递归(recursive)的持续更改,即连同子目录下的所有文件都要更改
      # 举个栗子
      sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt
      -rw-rw-rw- 1 sunny sunny 5 8月  15 11:45 a.txt
      sunny@DESKTOP-A80BM1L:~/test$ chmod 772 a.txt
      sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt
      -rwxrwx-w- 1 sunny sunny 5 8月  15 11:45 a.txt
      
      ##########################################
      ### 用符号类型来改变文件权限
      ##########################################
      # 用法
      chmod [u|g|o|a] [+|-|=] [r|w|x] <文件或目录>
      # 参数
      u: user
      g: group
      o: others
      a: all(表示同时设置用户,用户组和其他用户的权限)
      
      +: 增加
      -: 移除
      =: 设置
      
      r: 读
      w: 写
      x: 执行
      # 举个栗子
      sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt
      -rwxrwx-w- 1 sunny sunny 5 8月  15 11:45 a.txt
      sunny@DESKTOP-A80BM1L:~/test$ chmod o+r,g-x a.txt
      sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt
      -rwxrw-rw- 1 sunny sunny 5 8月  15 11:45 a.txt
      
  • 目录与文件权限的意义

    • 文件的权限

      • r(read):可读取此文件的实际内容,如读取文本文件的文字内容
      • w(write):可以编辑、添加、删减该文件的内容(但是不包含删除该文件)
      • x(eXecute):该文件具有可以被系统执行的权限

      需要注意的是:文件的权限并不能限制一个用户是否能删除这个文件,下面举个栗子(以文件为例,目录也是一样的,有兴趣的读者可以自行尝试):

      # 先以root用户身份创建一个文件,并将权限设置为700,即只有root用户可以读写和执行这个文件,
      # 其他用户对这个文件没有读写权限
      输入:
      echo "test" >> a.txt
      chmod 700 a.txt
      ls -l a.txt
      输出:
      -rwx------ 1 root root 5 8月  15 13:32 a.txt
      
      # 再切换回普通用户状态,删除这个文件(可以发现虽然sunny对a.txt不具有权限,
      # 但是仍然可以成功删除该文件)
      sunny@DESKTOP-A80BM1L:~$ rm a.txt
      rm:是否删除有写保护的普通文件 'a.txt'? y
      sunny@DESKTOP-A80BM1L:~$ ls a.txt
      ls: 无法访问'a.txt': 没有那个文件或目录
      
    • 目录的权限

      • r(read contents in directory):表示你有读取该目录的结构列表的权限,即可以用ls命令将目录中的文件列表显示出来(前提是同时拥有x权限
      • w(modify contents of directory):表示拥有可以更改该目录结构列表的权限
        • 新建文件或目录
        • 删除已经存在的文件或目录
        • 将已存在的文件或目录进行重命名
        • 转移改目录内的文件、目录
        • 其他可以使得该目录下某个或者某些文件的文件名发生变动的操作
      • x(access directory):表示用户是否能进入该目录工作

      需要注意的是:如果你对某个目录不具有x权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何命令,即便你具有该目录的r权限

      上面对于是否可以删除一个文件的讨论,这边添加一个注意事项:那就是如果你对一个目录没有x权限,则无法删除该目录下的任何文件,也就意味着如果这个目录不为空,你无法成功删除这个目录

  • 如何判断是否能删除一个文件

    根据上面的讨论我们能发现,其实一个文件是否能被一个用户删除,取决于这个用户是否对该文件所在目录具有一定的权限

    • 若用户不具有目标文件所在目录的r权限:则用户无法获取目标文件所在目录的文件信息,也就无法删除目标文件 =>所以用户要能够删除目标文件,必须具有目标文件所在目录的 r 权限
    • 若用户不具有目标文件所在目录的w权限:则用户无法对目标文件进行删除操作(对于目标文件所在目录下的其他文件同样无法删除),也就无法删除目标文件 => 所以用户要能够删除目标文件,必须具有目标文件所在目录的 w 权限
    • 若用户不具有目标文件所在目录的x权限:则用户无法进入目标文件所在目录,也就无法访问到目标文件,不能删除目标文件 => 所以用户要能够删除目标文件,必须具有目标文件所在目录的 x 权限

    综上所述,要想删除一个目标文件,必须拥有目标文件所在文件夹的 rwx 权限

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 文件或...
    andycheng阅读 347评论 0 0
  • chmod,chown,chgrp chmod chmod chown chgrp 此三个命令,都是更改权限相关的...
    香吉矢阅读 1,371评论 0 0
  • 一、Linux权限介绍 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些...
    人在码途阅读 1,270评论 0 0
  • 拥有者、群组和其他人 回到ls -al命令,该命令列出一个目录下所有文件的详细信息,下面是一个输出样例: 每一行代...
    学习编程王同学阅读 286评论 0 0
  • 此部分针对近两年活跃客户在15年上半年和16年上半年各渠道的活跃情况进行打分评估。打分采用RFM模型,分别对客户在...
    胡东岳阅读 202评论 0 0