Linux文件权限概念

文件属性

例子

dr-xr-x---.  6 root root  4096 Sep 18 18:21 .
dr-xr-xr-x. 18 root root  4096 Sep 18 10:33 ..
-rw-------   1 root root  2317 Sep 18 18:53 .bash_history
-rw-r--r--.  1 root root    18 May 11  2019 .bash_logout
-rw-r--r--.  1 root root   176 May 11  2019 .bash_profile
-rw-r--r--.  1 root root   176 May 11  2019 .bashrc
drwx------   3 root root  4096 Sep 18 18:21 .config
drwxr-xr-x   3 root root  4096 Sep 18 18:08 C++_projects
-rw-r--r--.  1 root root   100 May 11  2019 .cshrc
drwx------   2 root root  4096 Sep 18 10:33 .ssh
-rw-r--r--.  1 root root   129 May 11  2019 .tcshrc
-rw-------   1 root root 10601 Sep 18 18:19 .viminfo
drwxr-xr-x   3 root root  4096 Sep 18 18:04 .vs
  • 第一段字符里的首字符代表这个文件是目录、文件或链接文件

    • 当为d时,表示目录
    • 当为-时,表示文件
    • 当为l时,表示链接文件
    • 当为b时,表示为设备文件里面可供存储的周边设备(可按块随机读写设备)
    • 当为c时,表示为设备文件里面的串行端口设备(如鼠标键盘)
  • 第一段字符里接下来的字符,以三个为一组,且均为rwx-的组合,其中r表示可读,w表示可写,x表示可执行,如果是-,表示缺少这个权限

    • 第一组为文件拥有者可具备的权限
    • 第二组为加入此用户组的账号的权限
    • 第三组为非本人且没有加入本用户组的其它账号的权限
  • 第二段字符表示有多少文件名链接到此节点

    • 每个文件都会将它的权限与属性记录到文件系统的inode中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名都会链接到一个inode,这个属性就是记录有多少不同的文件名链接到同一个inode号。
  • 第三段字符表示这个文件(目录)拥有者的账号

  • 第四段字符表示这个文件的所属用户组

  • 第五段字符表示这个文件的容量大小

  • 第六段字符表示这个文件的创建日期或最近修改日期

  • 第七段表示这个文件的文件名

Note

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

上面这个文件夹其它人因为只有r权限,而没有x权限,故不能进入目录,testgroup的成员能进入此目录,在该目录工作,但不能对该目录进行写入操作。而文件拥有者test1可以在本目录进行任何工作

对于文件夹而言,

  • 读权限表示具有读取目录结构列表的权限,所以当你具有读取一个目录的权限时,表示你可以用ls命令查询该目录下文件名数据
  • 写权限表示具有改动该目录结构列表的权限,相当于拥有以下权限
    • 建立新的文件与目录
    • 删除已有的文件与目录(而不论该文件本身的权限)
    • 将已有的文件或目录更名
    • 移动该目录内的文件、目录的位置
  • 执行权限表示进入该目录,已成为工作目录的用途(cd)

修改文件属性与权限

三个常用命令

  • chgrp: 修改文件所属用户组
    • 格式:chgrp 用户组名 文件名
    • 要修改的组名必须要在/etc/group文件中存在才行
  • chown: 修改文件拥有者
    • 格式:chown 用户名 文件
    • 要修改的用户名必须在/etc/passwd文件中存在才行
    • 在chown上加上-R选项可连目录下的所有子目录或文件同时更改文件拥有者
  • chmod: 修改文件权限
    • 格式:chmod 三位数字 文件 / chmod u=权限,g=权限,o=权限 文件
    • r:4,w:2,x:1,所以rwx=4+2+1=7,rw=6,wx=3,rx=5
    • 在符号类型修改文件权限中,u相当于文件拥有者,g相当于用户组,o相当于其他人,a为全部人,+号表示添加,-号表示移除,=号表示设置。
    • chmod 777 文件名 相当于 chmod a=rwx 文件名 相当于 chmod ugo=rwx 文件名 相当于 chmod u=rwx,g=rwx,o=rwx 文件名
    • 加上-R选项可对目录下所有子目录或文件同时更改权限

文件种类及扩展名

  • 文件种类
    • 常规文件,属性为[-]
      • 纯文本文件(ASCll),人类可直接读取到的数据
      • 二进制文件(binary)
      • 数据文件(data),有些特定格式的文件称为数据文件,用常规命令如cat读取会是乱码,而用last命令可以读出来
    • 目录,属性为[d]
    • 链接文件,属性为[l]
    • 设备与设备文件,与系统周边及存储等相关的一些文件,通常集中在/dev这个目录下
      • 区块设备文件,存储一些数据,以提供系统随机存取的接口设备(硬盘,软盘),属性为[b]
      • 字符设备文件,一些串行端口的接口设备(鼠标、键盘),属性为[c]
    • 数据接口文件(sockets),属性为[s]。通常用于在网络上进行数据交换。
    • 数据输送文件(FIFO,pipe):一种特殊的文件类型,用于解决多个程序同时读写一个文件所造成的错误问题,FIFO即先进先出,pipe即管道,,属性为[p]

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注