33°

Linux_FHS目录作用分析

总目录概览

目录 英文全名 用途
/bin Binaries 用于存放最常用的二进制命令
/boot Boot 包含引导Linux的重要文件,如grub和内核文件等
/dev Devices 所有设备都在该目录下,包括硬盘和显示器等
/etc etc 系统的所有配置文件都放在它下面
/home Home 存放个用户的家目录($HOME)及其文件和配置
/lib Libraries 系统的库文件,有点像Windows的Program Files
/lost+found lost+found 用于存放系统异常时丢失的文件(如突然宕机),以利于恢复
/media Media 用于加载各种媒体,如光盘、软盘等
/mnt Mount 用于加载各种文件系统
/opt Optionally 用于存放安装的“可选”程序
/proc Processes 包含进程等信息,是内存的映射,不是真实目录
/root Root 该目录是root用户的家目录($HOME)
/run Run 该目录是是系统每次重启时生成的tmpfs,其真正的链接是/var/run
/sbin System-only binaries 用于存放系统专用的二进制命令
/srv Service 服务启动之后需要访问的数据目录
/sys System 用于存放系统信息
/tmp Temporary files 用于存放临时文件
/usr User 用于存放普通用户的应用程序、库文件和文档等
/var Variable files 用于存放那些在时间、大小、内容上会经常变化的文件

/bin目录

注意:
文件权限除了

  • r:4
  • w:2
  • x:1

外,还有:

  • SUID:4
  • SGID:2
  • SBIT:1

SUID

(1)SUID权限仅对二进制程序有效;
(2)执行者对于该程序需要具有x的可执行权限;
(3)本权限仅在执行该程序的过程中有效;
(4)执行者将具有该程序所有者的权限。

SGID

对二进制程序:
(1)SGID对二进制程序有用;
(2)程序执行者对该程序需具备x权限;
(3)执行者在执行过程中会获得该程序用户组的支持。
对目录:
(1)用户若对此目录具有r和x权限,该用户能够进入该目录;
(2)用户在此目录下的有效用户组将变成该目录的用户组;
(3)若用户在此目录下拥有w权限,则用户所创建的新文件的用户组与该目录的用户组相同。

SBIT

SBIT目前只对目录有效。
SBIT对目录的作用是:
(1)当用户对此目录具有w和x权限时,即具有写入权限时;
(2)当用户在该目录下创建新文件或目录时,仅有自己和root才有权力删除。

文件夹 文件 用途
/bin ... man command

/boot目录

文件夹 文件 用途
/boot vmlinuz-3.10.0-957.el7.x86_64 内核文件
/boot initramfs-3.10.0-957.el7.x86_64.img
initramfs是改进版的tmpfs,不仅可以交换分区,还可以设定一个tmpfs装载点的最大尺寸以免耗尽内存
/boot System.map-3.10.0-957.el7.x86_64 特定内核的内核符号表,是当前运行的内核的System.map的链接
/etc/grub 引导装置配置文件

如须了解更多,请点击:/boot目录介绍

/dev目录

文件夹 文件 用途
/dev console 系统控制台,也就是直接和系统链接的监视器
/dev fd 软驱设备驱动程序
/dev null “黑洞”,所有写入该设备的信息都将会消失
/dev sda scsi硬盘驱动程序接口
/dev tty 提供虚拟控制台支持
/dev ttys 计算机串行接口
/dev pty 提供远程登陆伪终端支持

/etc目录

文件夹 文件 用途
/etc aliases,aliases.db alias给命名指定别名
/etc/alternatives 只能在root权限下执行,常用于同一个系统中安装同一软件的多个版本
/etc/audit,/etc/audisp audit可以将(用户空间)审计记录写入日志文件,包括记录系统调用和文件访问。管理员可以检查这些日志,确定是否存在安全漏洞
/etc/cloud 当系统启动时,cloud-init可从nova metadata服务或者config drive中获取metadata,完成一些定制化工作,如设置default locale、设置hostname、添加ssh key、设置用户密码、配置网络和安装软件包等
/etc crypttab 用于描述在系统启动过程中创建的加密块设备(加密卷)
/etc csh.cshrc,csh.login,profile 登录或启动时bourne或Cshell执行的文件,这允许系统管理员为所有用户建立全局缺省环境
/etc/depmod.d depmod:分析可加载模块的依赖性,生成modules.dep文件和映射文件;lsmod:列出内核已载入模块的状态;modprobe:内核添加删除模块;modinfo:显示内核模块的信息;insmod:向内核中插入一个模块;rmmod:删除内核中的一个模块
/etc dracut.conf dracut用于制作initrd启动镜像文件,dracut-network会为镜像内添加nfs等网络支持
/etc e2fsck.conf e2fsck为磁盘修复命令,如突然断电后可能产生磁盘坏道,使用该命令进行磁盘修复
/etc GeoIP.conf GeoIP是一套含IP数据库的软件工具,Geo会根据来访者的IP,定位该IP所在经纬度、国家/地区、省市和街道等位置信息。因为GeoIP赌气的是本地的二进制IP数据库,所以效率很高,比从APNIC读取再转高很多

/home目录

文件夹 文件 用途

/lib目录

文件夹 文件 用途

/lost+found目录

文件夹 文件 用途

/media目录

文件夹 文件 用途

/mnt目录

文件夹 文件 用途

/opt目录

文件夹 文件 用途

/proc目录

文件夹 文件 用途

/root目录

文件夹 文件 用途

/run目录

根据linux的文件系统分层结构标准(FHS)中的定义:

  • /var/run 目录中存放的是自系统启动以来描述系统信息的文件。
  • 比较常见的用途是daemon进程将自己的pid保存到这个目录。
  • 标准要求这个文件夹中的文件必须是在系统启动的时候清空,以便建立新的文件。

为了达到这个要求,linux中/var/run使用的是tmpfs文件系统,这是一种存储在内存中的临时文件系统,当机器关闭的时候,文件系统自然就被清空了。使用df -Th命令能看到类似的输出结果:

# df -Th /var/run
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs          tmpfs  2.0G  9.0M  2.0G   1% /run

从该输出结果可看出,/var/root是一个tmpfs文件系统,并且它被挂载到/run目录下
当然,/var/run除了保存进程的pid之外也有其他的作用,比如utmp文件,就是用来记录机器的启动时间以及当前登陆用户的。

为什么要使用/run代替
这是因为/var/run文件系统并不是在系统一启动就是就绪的,而在此之前已经启动的进程就先将自己的运行信息存放在/dev中,/dev同样是一种tmpfs,而且是在系统一启动就可用的。但是/dev设计的本意是为了存放设备文件的,而不是为了保存进程运行时信息的,所以为了不引起混淆,/dev中存放进程信息的文件都以”.”开始命名,也就是都是隐藏文件夹。但是即便是这样,随着文件夹的数量越来越多,/dev里面也就越来越混乱,终于有人坐不住了,所以引入了替代方案,也就是 /var/run。

使用/var/run有什么好处
主要就是解决了上边说的管理不一致,最终使各个发行版统一管理。最终将/var/run和/var/lock都归并到/run中。而且在也不用使用隐藏文件夹这种伎俩了,对管理员来说轻松了不少。同样/dev中也不会有不相关的内容了。

文件夹 文件 用途
/run *.pid 保存进程的pid
/run *.sock 生成进程的socket
/run *.lock 生成进程的互斥锁
/run utmp 记录机器的启动时间以及当前登陆用户
/run/dbus 数据总线,是一个低延时、低开销、高可用性的ipc机制。目前dbus已被大多数Linux发行版所采用,开发者可使用D-Bus实现各种复杂的进程间通信任务
/run/systemd 系统初始化过程中包含的Units
/run/udev (用户模式)设备文件管理工具

/sbin目录

文件夹 文件 用途

/srv目录

文件夹 文件 用途

/sys目录

文件夹 文件 用途

/tmp目录

文件夹 文件 用途

/usr目录

文件夹 文件 用途

/var目录

文件夹 文件 用途

本文由【R】发布于开源中国,原文链接:https://my.oschina.net/u/4198654/blog/3136599

全部评论: 0

    我有话说: