linux文件权限与目录配置

用户与用户组

linux一般将文件可读写的身份分为三个类别:拥有者(owner)、所属群组(group)、其他人(other)
三种身份都有读、写、执行等权限

  1. 文件拥有者
    linux是个多人多任务的系统,可能存在多个人同时使用一台主机的情况,这就需要对每个用户的隐私进行保护
    可以设置文件只有拥有者才可以查看,其他用户就查看不到这个文件的内容啦
  2. 用户组概念
    可以设置文件对一组用户可见,保证团队工作的效率与隐私性
    每个账号都可以有多个用户组支持
  3. 其他人
    其他人可以通过组内用户访问文件
  • linux用户身份与用户组记录的文件
    默认情况下,所有的系统上的账号与普通用户、root用户信息都记录在**/etc/passwd文件中,个人密码记录在/etc/shadow文件中,所有组名记录在/etc/group**中

打开/etc/passwd文件后可以看到里面有很多数据,但是很多用户都不是自己创建的,这就是系统自己创建的系统用户,也就是伪用户
linux文件权限与目录配置_第1张图片
这些系统用户不能用来登录系统,但是也不能删除。因为一旦删除,依赖这些用户运行的进程将不能正常执行,会导致系统问题

linux文件权限概念

linux文件属性

列出文件后可以查看其相关属性
linux文件权限与目录配置_第2张图片
上述图片从左到右为:
文件的类型权限,链接数,文件拥有者,文件所属用户组,文件大小,文件最后被修改的时间,文件名

  • 第一栏为文件的类型与权限,含10个字符
    • 第一个字符代表文件是目录、文件、链接文件等
      • d:目录
      • -:文件
      • l:链接文件
      • b:设备文件里面可供存储的周边设备(可按块随机读写的设备)
      • c:设备文件里面的串行端口设备,如键盘、鼠标(一次性读取设备)
    • 之后的字符,3个为一组,均为rwx三个参数的组合,分别为可读、可写、可执行
      • 第一组为文件拥有者具备的权限
      • 第二组为加入用户组成员的权限
      • 非本人非用户组成员的其他账号的权限
  • 第二栏表示有多少文件名链接到此节点
    每个文件都会将它的权限与属性记录到文件系统的inode中,但我们平时使用的文件数确是使用文件名来记录,故每个文件名都会链接到一个inode,这个属性记录的就是有多少不同的文件名链接到同一个inode号码
  • 第三栏表示文件(或目录)拥有者的账号
  • 第四栏表示这个文件的所属用户组
  • 第五栏表示文件的容量大小,默认单位为Bytes
  • 第六栏为文件的创建日期或是最近的修改日期

修改文件属性与权限

  • chgrp 修改文件所属用户组
    change group的缩写
    注意,要修改的组名必须在/etc/group文件中才行,否则会显示错误

    chgrp [-R] 修改为用户组 dirname/filename  
    
    • 选项与参数
      -R:进行递归修改,即子目录下的所有文件、目录进行同步修改

    对于文件修改:
    linux文件权限与目录配置_第3张图片
    可以看到用户组已经修改
    对于文件夹修改:
    linux文件权限与目录配置_第4张图片
    在这里插入图片描述
    其内部文件也进行了递归修改

  • chown 修改文件拥有者

    chown [-R] 新拥有者名称 目标文件(若是文件夹,需要有-R参数)
    chown [-R] 新拥有者名称:新用户组名称 目标文件(若是文件夹,需要有-R参数)
    

    chown也可以顺便修改用户组的名称
    linux文件权限与目录配置_第5张图片

  • chmod 修改文件权限,SUID、SGID、SBIT等的特性

    • 数字类型修改权限
      rwx视为二进制

      chmod [-R] 权限数字 文件或目录
      

      linux文件权限与目录配置_第6张图片

    • 符号类型修改权限
      权限分别对应三种身份:user(u),group(g), others(o)
      还有一种all(a)

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

      可以对每一部分权限进行具体设置
      linux文件权限与目录配置_第7张图片

目录与文件的权限意义

  • 权限对文件的重要性

    • r:可以读取文件内容
    • w:可编辑、修改文件内容(但是不能删除文件)
    • x:文件具有可以被系统执行的权限

    对于rwx权限来说,主要都是针对文件的内容而言,与文件名的存在与否没有绝对关系

    在windows下,文件是否具有执行能力是由扩展名来判断的,如exe,bat等
    但是在linux下,文件是否能被执行是借由是否具有[x]这个权限来决定的,与文件名没有绝对关系

  • 权限对目录的重要性
    文件是存放实际数据的存在,目录主要的内容是记录文件名列表,文件名与目录有强烈的关联

    • r:可以读取目录下文件名数据
    • w:具有改动该目录结构列表的权限
    • x:用户是否能进入该目录称为工作目录
      要开放目录给任何人浏览时,应至少需要基于r及x权限,但w权限不能随便给

linux文件种类

任何设备在linux下都是文件

  • 常规文件
    一般我们在进行读写的类型的文件,在ls -al所显示出来的属性方面,第一个字符为[-]
    依照文件的内容,又可以分为:

    • 纯文本文件
    • 二进制文件
    • 数据文件:如linux在用户登录时会将登录的数据记录在/var/log/wtmp文件内,该文件是一个数据文件,可以通过last命令读取出来,但是使用cat时会出现乱码
  • 目录:第一个属性为[d]

  • 链接文件:属性为[l]

  • 设备与设备文件
    与系统周边及存储等相关的一些文件,通常都集中在/dev目录下,通常又分为两种

    • 区块设备文件:第一个属性为[b]。就是一些存储数据,以提供系统随机存取的接口设备 在这里插入图片描述

    • 字符设备文件:第一个属性为[c]。一些串行端口的接口设备,如键盘、鼠标等。这些设备的特点就是一次性读取,不能截断输出。
      在这里插入图片描述

  • 数据接口文件(sockets):第一个属性为[s],通常在/run或/tmp这些目录中看到这种文件类型。这类文件通常被用在网络上的数据交换。我们可以启动一个程序来监听客户端的要求,而客户端可以通过socket来进行数据的沟通

  • 数据输送文件(FIFO, pipe):FIFO也是一种特殊的文件类型,她主要的目的是解决多个程序同时读写一个文件所造成的错误问题,FIFO也是先进先出的缩写,即管道,第一个属性为[p]

linux文件扩展名

linux文件是否能执行与扩展名无关,只要有[x]权限即可,但是可以被执行与可执行成功是不一样的,故[x]只是代表这个文件具有可执行的能力,但是能不能执行成功,就要看该文件的内容了

但是,一般扔希望可以通过扩展名来了解该文件是什么东西,故还是以适当的扩展名来表示文件是什么种类

  • 一些常用扩展名
    • .sh:脚本或批处理文件
    • .Z、.tar、.tar.gz 、 .zip、 .tgz:经过打包的压缩文件
    • .html、.php:网页相关文件

linux目录配置

Linux目录配置的依据——FHS

为了让用户可以了解到已安装软件通常放置于哪个目录下,方便企业公司管理,便诞生了FHS标准

你可能感兴趣的:(linux,网络,服务器)