标题：inode
简介
inode 是 UNIX 操作系统中的一种数据结构，其本质是结构体，它包含了与文件系统中各个文件相关的一些重要信息。在 UNIX 中创建文件系统时，同时将会创建大量的 inode 。通常，文件系统磁盘空间中大约百分之一空间分配给了 inode 表。 
有时，人们使用了一些不同的术语，如 inode 和索引编号 (inumber)。这两个术语非常相似，并且相互关联，但它们所指的并不是同样的概念。inode 指的是数据结构；而索引编号实际上是 inode 的标识编号，因此也称其为inode 编号 或者索引编号。索引编号只是文件相关信息中一项重要的内容。下一个部分将介绍 inode 中的其他一些属性。 
inode 表包含一份清单，其中列出了对应文件系统的所有 inode 编号。当用户搜索或者访问一个文件时，UNIX 系统通过 inode 表查找正确的 inode 编号。在找到 inode 编号之后，相关的命令才可以访问该 inode ，并对其进行适当的更改。 
例如，使用 vi 来编辑一个文件。当您键入 vi <filename> 时，在 inode 表中找到 inode 编号之后，才允许您打开该 inode 。在 vi 的编辑会话期间，更改了该 inode 中的某些属性，当您完成操作并键入 :wq 时，将关闭并释放该 inode 。通过这种方式，如果两个用户试图对同一个文件进行编辑， inode 已经在第一个编辑会话期间分配给了另一个用户 ID (UID)，因此第二个编辑任务就必须等待，直到该 inode 释放为止。
结构
对于经验丰富的 UNIX 开发人员或者管理员来说， inode 的结构相对比较简单，但是可能还有一些您尚不了解的、令人惊讶的有关 inode 的内幕。下面的定义仅给出了 inode 中所包含的、UNIX 用户经常使用的一些重要信息： 
● inode 编号
● 用来识别文件类型，以及用于 stat C 函数的模式信息 
● 文件的链接数目
● 属主的 UID
● 属主的组 ID (GID)
● 文件的大小
● 文件所使用的磁盘块的实际数目
● 最近一次修改的时间
● 最近一次访问的时间
● 最近一次更改的时间
从根本上讲， inode 中包含有关文件的所有信息（除了文件的实际名称以及实际数据内容之外）。可以在 AIX 的 Header 文件 /usr/include/jf/ino.h 中、或者 Web 页面 中可以找到完整的 inode 结构。 
以上所列举的信息对于文件来说非常重要，并且在 UNIX 中频繁使用。如果没有这些信息，那么文件将被认为遭到破坏和不可用。 
与其他的操作系统相比，UNIX 系统中的目录和文件可能看起来有所不同，但事实并非如此。在 UNIX 中，目录本身就是文件，只是在它们的 inode 中使用了一些附加的设置。目录 本质上就是一个包含了其他文件的文件。另外，其模式信息中设置了一些相应的标志，以告知系统该文件实际上是一个目录。
使用
了解如何在 UNIX 中使用 inode 可以节约大量的时间，并提高工作效率。在尚未了解 inode 之前，您可以使用下面的命令，以减少可能碰到的问题。 
df 命令
如前所述，当您在 UNIX 中创建一个文件系统时，将为 inode 表分配大约百分之一的总磁盘空间。每次在文件系统中创建一个文件时，都会为该文件分配一个 inode 。通常，与一个文件系统相关联的 inode 的数目足够多，但耗尽 inode 的可能性始终存在。要监视是否发生了这种情况，您可以观察 df 的输出。 
使用 df 命令，您可以查看所有已挂载的文件系统或者特定的文件系统。在该命令的输出中，您可以查看各个文件系统中已使用的 inode 的数目，以及文件系统中总体使用情况百分比，如清单 1 中所示。 
清单 1. 使用 df 来监视 inode 的使用
# df -k|head -6
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 229376 138436 40% 4730 13% /
/dev/hd2 8028160 962692 89% 110034 33% /usr
/dev/hd9var 1835008 366400 81% 25829 24% /var
/dev/hd3 524288 523564 1% 98 1% /tmp
/dev/hd1 32768 32416 2% 5 1% /home
如果由于某种原因，某个文件系统 inode 的使用率达到百分之百，那么您将无法在该文件系统中创建更多的文件、设备、目录等等。对于这种情况，一种解决方案是通过 smitty chfs 命令为该文件系统添加更多的空间，如图 1 所示。另一种解决方案是创建较小的 inode 区段。现在，在增强的日志文件系统 (Enhanced Journal File System) 中，IBM AIX 5L 允许 inode 区段小于 16KB 的缺省大小。请记住，如果您在 AIX 5L 中使用这个选项，那么将无法从较早版本的 AIX 访问该文件系统。 
图 1. smitty chfs 命令的结果
  [1]istat 和 stat
在 AIX 中检查 inode 的一种快捷的方式是使用 istat 命令。使用这个命令，您可以找到特定文件的索引编号，以及其他的 inode 项目，如权限、文件类型、UID、GID、链接的数目（非符号链接）、文件大小和最近一次更新、最近一次修改以及最近一次访问的时间戳。 
清单 2 显示了 AIX 中文件 /usr/bin/ksh 的 inode 信息。 
清单 2. /usr/bin/ksh 的 inode 信息
# istat /usr/bin/ksh
Inode 18150 on device 10/8 File
Protection: r-xr-xr-x
Owner: 2(bin) Group: 2(bin)
Link count: 5 Length 237804 bytes
Last updated: Wed Oct 24 17:37:10 EDT 2007
Last modified: Wed Apr 18 23:58:06 EDT 2007
Last accessed: Mon Apr 28 11:25:35 EDT 2008
除了显示来自 istat 的标准信息之外，现在您还知道了 /usr/bin/ksh 对应的索引编号。如果您同时还找到了该文件所处的逻辑卷，那么甚至可以显示更多的信息。要查找该信息，一种方式是通过使用 df 命令来查看该文件位于哪个已挂载的文件系统中： 
# df /usr/binFilesystem 512-blocks Free %Used Iused %Iused Mounted on/dev/hd2 16056320 1925384 89% 110034 33% /usr
文件 /usr/bin/ksh 位于目录 /usr/bin 中。查看 df 命令的输出，您可以发现，目录 /usr/bin 包含于 /usr 文件系统中，并且 /usr 文件系统位于逻辑卷 /dev/hd2 之中。现在，您已经知道了索引编号和逻辑卷的名称，那么就可以将这两个信息项作为参数来使用 istat，这样一来，您可以确定组成该文件的磁盘块的十六进制地址，如清单 3 中所示。 
清单 3. 确定文件磁盘块的十六进制地址
# istat 18150 /dev/hd2
Inode 18150 on device 10/8 File
Protection: r-xr-xr-x
Owner: 2(bin) Group: 2(bin)
Link count: 5 Length 237804 bytes
Last updated: Wed Oct 24 17:37:10 EDT 2007
Last modified: Wed Apr 18 23:58:06 EDT 2007
Last accessed: Mon Apr 28 11:44:20 EDT 2008
Block pointers (hexadecimal):
11620 ef8c0
Linux 提供了其特有的 istat 版本：stat。Linux stat 命令可以显示类似的信息，并且还包括一些在 AIX istat 命令中没有提供的命令开关： 
# stat /bin/bash File: `/bin/bash' Size: 722684 Blocks: 1432 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 12799859 Links: 1Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2008-04-06 19:13:50.000000000 -0400Modify: 2006-07-12 03:11:53.000000000 -0400Change: 2007-11-22 04:05:30.000000000 -0500
ls 命令
在您的日常工作中总会碰到这样的情况，难以删除或者管理某些文件，因为这些文件的文件名中使用了短横线或者其他特殊字符、或者其文件名完全不正确。这很可能是有人对该文件进行了错误命名。 
因为 UNIX 中的大多数命令，包括开关或者选项在内，都是以连字符 (-) 或者双连字符 (--) 开头的，很难使用诸如 rm、mv 和 cp 之类常用的命令来操作这些文件。幸运的是，某些命令提供了一些选项，以用来显示相关文件所关联的 inode 的索引编号。ls 命令就提供了一个这样的选项： 
# ls - -- -p fileA fileB fileC fileDfileE fileF fileG fileH fileI fileJ fileK fileL
使用 ls -i 命令，您可以看到文件名称旁边的索引编号，如清单 4 中所示。现在，您已经知道了文件的索引编号，那么就可以很容易地操作该文件了。 
清单 4. 查看文件的索引编号
# ls –i
38988 38991 -p 38984 fileC 38982 fileF 38977 fileI 38978 fileL
38989 - 38980 fileA 38986 fileD 38983 fileG 38987 fileJ
38990 -- 38979 fileB 38976 fileE 38985 fileH 38981 fileK
find 命令
使用 UNIX find 命令，您可以完成使用 ls 命令所开始的工作。对于要进行操作的文件，您已经知道了它们的索引编号，那么就可以开始进行相应的操作了！ 
要删除看似无名的文件，您只需要使用 find 和 -inum 开关对索引编号和文件进行定位。然后，在找到该文件之后，使用 find 和 -exec 开关删除该文件： 
# find . -inum 38988 -exec rm {} \;
要对该文件进行重命名，可以再次进行相同的操作，但这一次使用 mv 而不是 rm： 
# find . -inum 38989 -exec mv {} fileM \;
为了验证取得了预期的结果，只需要再次使用 ls -i 命令： 
# ls -i38990 -- 38979 fileB 38976 fileE 38985 fileH 38981 fileK38991 -p 38984 fileC 38982 fileF 38977 fileI 38978 fileL38980 fileA 38986 fileD 38983 fileG 38987 fileJ 38989 fileM
fsck 命令
不幸的是，硬件设备不可能一直使用下去，系统可能会在使用多年后出现故障。当发生这种情况，以及由于电源故障或者某些其他问题而导致操作系统异常关闭的时候，您可能会在还原系统备份时碰到一些在崩溃期间处于打开状态的文件，并且现在需要对其加以处理。此时，您可能会碰到一些需要修复 inode 或者存在错误的消息。如果发生这种状况，那么 fsck 命令可以用来救急！您可以使用 fsck 来修复文件系统或者修正受损的 inode ，而不是还原系统、或者甚至重新构建操作系统。 
下面的命令可以尝试修复逻辑卷 /dev/hd1：
# fsck –p /dev/hd1 –y
通过使用 fsck 命令，您还可以缩小受损 inode 的搜索范围。如果您正在搜索一个特定的 inode ，那么可以使用带 -ii-NodeNumber 开关的 fsck 命令。
意义
如果没有 inode ，那么 UNIX 中的文件和目录将根本无法使用。希望在阅读完本文之后，您可以更好地了解 inode 、它们对于 AIX 系统的重要性，以及如何管理它们。您可能会对 df 命令的看法大为改观。

基本简介
iNode智能客户端是H3C自行设计开发的基于Windows的多业务接入客户端软件，提供802.1x、Portal、VPN等多种认证方式，可以与H3C以太网交换机、路由器、VPN网关等网络设备共同组网，实现对宽带接入、VPN接入和无线接入的用户认证，是对用户终端进行身份验证、安全状态评估以及安全策略实施的主体，可以按照企业接入安全策略的要求，实现基于角色/身份的权限和安全控制。
iNode智能客户端采用开放的平台化设计，可在多业务安全认证的基础上提供与H3C接入设备以及第三方终端安全软件的智能联动，实现对用户终端的防病毒软件、病毒库版本、补丁安装状态、软件使用情况、网络配置状态的协同控制；通过对接入终端的集中管理和监控，确保只有符合企业安全策略的用户终端才能接入网络，从而大幅度提高网络的整体安全。
做为一款融合客户端产品，iNode客户端可同时配合H3C公司EAD解决方案与VPN网关产品实现EAD认证和VPN移动用户认证。
iNode客户端可以使用户终端通过多种方式与H3C公司的网络设备（包括交换机、路由器和VPN网关等产品）进行用户接入身份认证。支持802.1x、Portal和VPN等多种认证方式。
iNode客户端具备丰富的安全认证功能，是EAD解决方案中用户安全状态的感知点，可以采集用户终端的安全状态信息并上报安全策略服务器进行安全状态评估，同时接收安全策略服务器的控制指令，提醒或强制用户进行系统补丁升级、卸载非法软件等。iNode客户端可以与第三方防病毒客户端进行联动，根据安全策略的定义，提醒或自动对用户终端实施查杀病毒、版本升级和病毒库更新等安全操作。
业务支持
iNode智能客户端提供多种认证方式，可以与H3C以太网交换机、路由器、VPN网关共同组网，用户可以根据应用场景的区别，灵活选择适合的接入方式。
l 支持802.1x、Portal等LAN/WLAN接入认证；
l 支持L2TP/IPSec VPN认证。
身份安全
iNode智能客户端提供了强大的安全策略，保证认证报文在网络上传输时的私有性、完整性、真实性，同时支持智能卡（USB Key）、数字证书认证，可以加强身份认证的安全强度，减少用户身份信息被盗用的风险。
l 支持PAP和CPAP验证协议；
l 支持EAP-MD5、EAP-TLS、PEAP认证方式；
l 支持IPSec/IKE加密；
l 支持基于智能卡的身份认证；
l 支持基于PKI的证书认证功能；
l 支持与Windows域管理器/LDAP服务器统一认证。
权限控制
iNode智能客户端配合H3C接入设备可以实现基于用户身份的网络访问权限管理，提高用户网络访问的安全性和网络的利用效率。
l 支持用户与用户IP地址、MAC地址和接入设备端口等硬件信息的绑定认证，增强用户认证的安全性，防止账号盗用和非法接入；
l 可以限制用户IP地址分配策略，防止IP地址盗用和冲突；
l 可以限制终端用户使用多网卡和拨号网络，防止内部信息泄露；
l 支持限制用户使用和设置代理服务器，有效防止资源滥用和运营损失。
安全准入
iNode智能客户端软件支持对用户终端操作系统版本、系统补丁、应用软件、防病毒软件的检查和控制，可以在终端接入层面帮助管理员统一实施企业安全策略。
l 支持用户终端操作系统版本、热补丁检测，并提供补丁的自动升级功能，实现对操作系统以及系统软件版本、系统补丁的统一管理；
l 支持与国内外主流防病毒软件配合实现防病毒软件安装运行状态、病毒库版本检测，使防病毒软件的价值得到提升，从单点防御转化为整体防御；
l 支持用户终端应用软件的统一管理，通过客户端可以对终端安装或运行的软件进行监控和限制；
l 支持客户端的桌面安全状态检测功能，支持对在线用户终端的运行进程、共享目录、分区表、屏保设置、系统服务列表等信息的集中审计。
简单界面
iNode智能客户端软件操作简单，界面友好，支持多操作系统，支持自动升级，支持用户界面定制功能，极大地便了用户的使用和管理。
l 适用于Windows 2000/XP/Server 2003等多种操作系统；
l 提供中英文版本，可以根据用户需求选择不同的界面语言；
l 提供客户端版本检测以及版本自动升级功能，管理员可以轻松实现客户端统一升级；
l 提供自动认证功能，用户登录操作系统后客户端自动发起认证，无需手工干预；
l 提供匿名认证功能，用户不需要输入用户名、密码即可完成身份认证和安全认证；
l 支持欠费信息、余额信息、通知信息的显示，用户可以及时了解帐户消费情况，并可以实时了解管理员发布的通知消息；
l 支持用户接入状态、接入时长等信息的直观显示，网络链接信息一目了然。
属 性
iNode（EAD）客户端
iNode（VPN）客户端
支持的操作系统
Windows 2000
Windows XP
Windows Server 2003
Windows 2000
Windows XP
Windows Server 2003
主要功能
PAP、CHAP认证
EAP-TLS、PEAP认证
Portal 认证
智能卡认证
Windows域统一认证
支持PKI证书认证
多网卡检测与控制
代理检测与控制
IP地址更新
防病毒联动
补丁检测与联动
系统状态检测
自动升级
自动认证与匿名认证
信息提示
PAP、CHAP认证
支持隧道密码验证
VPN用户IP地址自动分配
支持AH、ESP协议
支持DES、3DES加密
支持MD5及SHA-1验证
支持IKE主模式及野蛮模式自动认证
支持 Preshare Key 和 PKI证书认证
支持智能卡认证
iNode智能客户端通过与H3C接入设备以及CAMS综合访问管理服务器配合，可以实现对宽带接入、VPN接入和无线接入场景下的用户身份认证、终端安全状态评估和基于角色的安全策略控制。
组网应用
l iNode(EAD)客户端在终端用户的机器上安装iNode（EAD）客户端，与CAMS服务器、安全联动设备和第三方服务器一起构成EAD解决方案，可以对用户的身份合法性和终端安全状态进行检查，保证网络接入的安全。  iNode（EAD）客户端组网应用iNode（VPN）客户端iNode（VPN）客户端非常适合移动办公用户使用，通过iNode（VPN）客户端接入VPN网络，为客户提供方便、安全的VPN隧道，让用户随时随地都能够安全的访问企业或公司网络资源。  iNode（VPN）客户端的组网应用
产品规格
属 性
iNode（EAD）客户端 
iNode（VPN）客户端
支持的操作系统
Windows 2000
Windows XP
Windows Server 2003
Windows Vista
Windows 2000
Windows XP
Windows Server 2003
主要功能
PAP、CHAP认证
EAP-TLS、PEAP认证
Portal 认证
智能卡认证
Windows域统一认证
支持PKI证书认证
多网卡检测与控制
代理检测与控制
IP地址更新
四防软件联动
补丁检测与联动
系统状态检测
自动升级
自动认证与匿名认证
信息提示
PAP、CHAP认证
支持隧道密码验证
VPN用户IP地址自动分配
支持AH、ESP协议
支持DES、3DES加密
支持MD5及SHA-1验证
支持IKE主模式及野蛮模式自动认证
支持 Preshare Key 和 PKI证书认证
支持智能卡认证
[1]注：iNode Linux、Mac OS及可溶解客户端规格参见【产品特点】中的列表说明。