文件系统安全

程序员成长之旅 · 程序员成长之旅/互联网安全学习 · 1360 字

文件系统安全

  1. Linux文件系统简介

  2. 在linux操作系统中,文件系统采用梳妆的层次的目录结构,最顶层是根目录,用“/”表示,往下延伸其各级子目录

  3. 图示

  4. image-20210202200641739

  5. 详细介绍

  6. image-20210202200703845

  7. 查看文件属性 ls命令

  8. ls命常用指令

  9. 
    

-a:列出指定目录下的所有文件和子目录(包括以“.”开头的隐含文件)。

-b:如果文件或目录名中有不可显示的字符时,显示该字符的八进制值。

-c:以文件状态信息的最后一次更新时间进行排序。

-d:如果是目录,则显示目录的属性而不是目录下的内容。

-g:与-l选项类似,但不显示文件或目录的所有者信息。

-G:与-l选项类似,但不显示文件或目录所有者的用户组信息。

-l:使用长格式显示文件或目录的详细属性信息。

-n:与-l选项类似,但以UID和GID代替文件或目录所有者和用户组信息。

-R:以递归方式显示目录下的各级子目录和文件。


3. 系统文件属性详解

1. 图片

1. ![image-20210202200848424](https://anying-picture-universal-public-read.oss-cn-beijing.aliyuncs.com/notes-images/image-20210202200848424.png)

2. 详解

1. 第1部分:由10个字符组成,第一个字符用于标识文件的类型,其中`-`表示普通文件,`d`表示目录,`l`表示链接文件,`s`表示套接字文件,`p`表示命名管道文件,`c`表示字符设备文件,`b`表示块设备文件。

2. 第2部分:文件的`所有者`,`文件所有者的用户组`。在图中,文件的所有者是root,用户组也是root。

3. 第3部分:表示文件的`硬链接数`

4. 第4部分:以字节为单位的`文件大小`

5. 第5、6、7部分:表示文件`最后更新的时间`

6. 第8部分:`文件名`

4. 文件类型

1. Linux有4种基本文件系统类型:普通文件、目录文件、链接文件和特殊文件。通过ls-l命令可以返回文件的相关属性,其中第一个字符就是用于标识文件的类型。

1. 类型详解

1. 普通文件

1. 普通文件包括文本文件、程序代码文件、Shell脚本、二进制的可执行文件等,系统中的绝大部分文件都属于这种类型。

2. 目录文件

1. 目录是被作为一个文件来对待,其标识值为d。目录下可以包括文件和子目录。

3. 链接文件

1. 链接文件其实是一个指向文件的指针,通过链接文件,用户访问的将会是指针所指向的文件。

5. 文件和目录权限

1. 在Linux中的每一个文件或目录都有自己的访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录.

1. ![image-20210202201438667](https://anying-picture-universal-public-read.oss-cn-beijing.aliyuncs.com/notes-images/image-20210202201438667.png)

2. 文件和目录权限模型的控制对象包括3种用户,分别为文件的所有者、用户组用户和其他用户。

1. 文件所有者:文件所有者默认就是创建该文件的用户。

2. 文件属组:属于该用户组中的所有用户,文件的属组默认就是文件所有者所属的用户组。

3. 其它用户:除上述两类用户以外的系统中的所有用户。

6. 更改文件和目录的所有者

1. `chown`命令

1. chown命令用于更改文件或者目录的所有者和属组,包括目录下的各级子目录和文件

1. 命令格式如下

1. ```shell

chown [option]…[owner]:[group] file…
  1. 如果更改目录及其中各级子目录和文件的所有者和属性

  2. chown –R root:users /test

  3. 字符方式示例

  4. image-20210202201909078

  5. 数字方式示例

  6. image-20210202201943723

  7. image-20210202201950317

  8. 设置文件和目录的默认权限

  9. 对于每个新创建的文件和目录,系统会为它们设置默认的访问权限。通过使用umask命令可以更改文件或目录的默认权限

  10. 
    

umask 027


2. 在创建文件或目录时,系统会先检查当前设置的umask值,然后把默认权限的值与权限掩码值相减,就得到新创建的文件或目录的访问权限。

3. 在Linux中,每个用户都有自己的umask值,所以可以通过为不同安全级别的用户设置不同的umask值,来灵活控制用户的默认访问权限。一般常见的做法就是在.bash_profile配置文件中设置umask值

4. 用户每次登录系统,都必须先读取.bash_profile配置文件的内容并执行,所以每次用户登录完成后,新的umask值都会立即生效。