Linux文件权限

Linux文件权限概念

通常使用ll命令会展示如下信息:
image
这些列的字段从左到右依次是:
文件权限、连接数、文件拥有者、文件所属组、文件大小、文件最后更新时间、文件名

  1. 权限
    image
  • 第一个字符代表文件类型

    • 当为[ d ]则是目录
    • 当为[ - ]则是文件
    • 若是[ l ]则表示为连结档(link file);
    • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
  • 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]。

    • r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;

    • w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);

    • x (execute):该文件具有可以被系统执行的权限。

    • 第一组为『文件拥有者的权限』

    • 第二组为『所属群组的权限』;

    • 第三组为『其他人的权限』。

    注意: 当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!文件是否可以删除由文件夹的[ w ]权限决定

  1. 连接数
    有多少文件连接到当前i-node
  2. 文件拥有者
    文件的所属人
  3. 文件所属群组
    这个群组与拥有者是互相独立的,它俩没有所属关系,都可以独立的控制权限
  4. 文件大小,单位为bytes
  5. 文件的创建日期或者是最近的修改日期
  6. 文件名

如何改变文件属性与权限

  • chgrp :改变文件所属群组

用法:chgrp [选项]... 组 文件...
 或:chgrp [选项]... --reference=参考文件 文件...
将每个指定 <文件> 的属组变更为 <组>。
例:chgrp testing install.log,修改install.log文件的所属组为testing

  • chown :改变文件拥有者
    用法:chown [选项]... [所有者][:[组]] 文件...
     或:chown [选项]... --reference=参考文件 文件...
    [-R]选项代表递归修改

  • chmod :改变文件的权限, SUID, SGID, SBIT等等的特性

    • 通过数字修改文件权限
      权限对应数字:
      r:4
      w:2
      x:1
      每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
      owner = rwx = 4+2+1 = 7
      group = rwx = 4+2+1 = 7
      others= --- = 0+0+0 = 0
      用法:chmod xyz 文件或目录
  • 符号类型改变文件权限

由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x!也就是可以使用底下的方式来看:

chmod u
g
o
a
+(加入)
-(除去)
=(设定)
r
w
x
文件或目录

例子:

  • 『设定』一个文件的权限成为『-rwxr-xr-x』
    chmod u=rwx,go=rx .bashrc
  • 新增执行权限
    chmod a+x test

目录权限

  • r (read contents in directory):

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

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

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

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

  • x (access directory):
    目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途!也就是可以控制用户是否可以cd到这个目录下。

例子:

假设有个账号名称为dmtsai,他的家目录在/home/dmtsai/,dmtsai对此目录具有[rwx]的权限。 若在此目录下有个名为the_root.data的文件,该文件的权限如下:
-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data
请问dmtsai对此文件的权限为何?可否删除此文件?
答:
如上所示,由于dmtsai对此文件来说是『others』的身份,因此这个文件他无法读、无法编辑也无法执行, 也就是说,他无法变动这个文件的内容就是了。
但是由于这个文件在他的家目录下, 他在此目录下具有rwx的完整权限,因此对于the_root.data这个『档名』来说,他是能够『删除』的! 结论就是,dmtsai这个用户能够删除the_root.data这个文件!

posted @ 2026-04-23 17:35  Hekk丶  阅读(12)  评论(0)    收藏  举报