fpm 命令
用途
管理带有 setuid 或 setgid 权限的特权用户所拥有的守护程序和命令的权限。
语法
fpm[-l level[-f file] [ [-c] [-p] ] ][-v] ]| [-s] | [-q] | [-?]
描述
fpm 命令允许管理员通过禁用操作系统上许多命令的 setuid 和 setgid 位来强化系统。 该命令旨在从特权用户所拥有的守护程序和命令中除去 setuid 权限,但您也可以定制权限来满足特殊计算机环境的具体需求。
基本AIX®操作系统上的 setuid 程序已被分组,以便进行不同级别的加固。 此种分组允许管理员根据其系统环境来选择固化级别。 另外,您可以使用 fpm 命令来创建需要在环境中禁用的程序的列表。 必须复审禁用级别,并为您的环境选择正确的级别。
使用 fpm 命令更改命令和守护程序的执行权限将对非特权用户造成影响,使用户无法访问这些命令和守护程序或其功能。 此外,调用和依赖于这些命令和守护程序的其他命令也将受到影响。 非特权用户运行任何依赖于命令和守护程序(带有 fpm 命令所提示的权限)的用户创建脚本时,可能无法实现预期操作。 请充分考虑修改命令和守护程序缺省权限的结果和潜在影响。
在使用此命令更改任何重要计算机环境中命令和守护程序的执行权限之前,必须进行测试。 如果在修改过执行权限的环境中遇到问题,请恢复缺省权限并在缺省环境中重现问题,以确保此问题并非因缺少相应执行权限而导致。
fpm命令提供了使用-l 默认标志恢复原始AIX安装默认权限的功能。
另外,fpm 命令记录了更改之前文件的权限状态。 fpm日志文件创建在 /var/security/fpm/log/日期_时间文件中。 必要时,可以使用这些日志文件以恢复以前保存的日志文件所记录的系统文件权限。
当在拥有扩展许可权的文件上使用 fpm 命令时,扩展许可权被禁用,但在 fpm 调用前已存在的扩展许可权数据将被保留在扩展 ACL 中。
可以定制配置文件并规定为高、中、低的一部分或缺省设置。 可以在 /usr/lib/security/fpm/custom/high/* 目录、 /usr/lib/security/fpm/custom/medium/* 目录和 /usr/lib/security/fpm/custom/default/* 目录中指定文件列表。 要获取此功能的优势,请创建包含 fpm 命令内部列表以及包含想要自动处理的文件列表的文件。 当运行 fpm 命令时,将同时处理相应定制目录中的列表。 要查看定制文件的格式示例,请参阅 /usr/lib/security/fpm/data/high_fpm_list 文件。 可以在 /usr/lib/security/fpm/data/default_fpm_list.example 文件中查看缺省格式。 为了定制 -l low 标志,fpm 命令读取 /usr/lib/security/fpm/custom/medium 目录中的相同文件,但只能除去 setgid 许可权,而 -l medium 标志可同时除去 setuid 和 setgid 许可权。
fpm 命令无法在启用 TCB 的主机上运行。
标志
| 项 | 描述 |
|---|---|
| -l 夷为平地 | 指定根据指定级别更改文件许可权。
|
| -s | 显示 fpm 命令上次所作更改的状态。 将该状态写入 /usr/lib/security/fpm/data/status_fpm 文件。 安全级别将以 1 到 5(包括 1 和 5)之间的一个整数来表示。 |
| -f 文件 | 允许文件列表的规范覆盖缺省的输入文件,此处的 file 参数是一个文件名,它包含用作输入的文件的列表。 此标志必须与 -l high|medium|low|default 或
-c 标志一起使用。 使用高、中、低级别时,输入文件格式如下所示: full_path/文件名 例如, 当与 -l default 标志一起使用时,输入文件格式如下所示: octet_permissions 完整路径/文件名 octet_permissions 变量和
full_path 变量之间必须有一个空格。 例如, -f 格式允许对受影响的文件的列表进行特定控制。 |
| -c | 检查文件许可权,但不执行操作。 如果未发现不一致的文件,那么 fpm 命令将返回 0。 如果一个或多个文件包含不符合规定的权限,该选项会列出不符合规定的文件并返回 1。 该标记必须与-llevel选项一起使用。 例如,如果 -c 和 -l high 标志一起使用,那么 fpm 命令将检查在 /usr/lib/security/fpm/data/high_fpm_list 文件中列示的文件并除去其 setuid 和 setgid 许可权。 -f file 标志也可与 -c 选项一起使用。 |
| -v | 详细输出。 |
| -p | 预览 fpm 命令将作出的更改但不执行操作。 此标志必须与 -l level 标志一起使用。 |
| -q | 退出方式,最小化输出并抑制警告。 |
| -? | 打印用法语句。 |
退出状态
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 成功。 |
| 非 0 | 故障或部分故障。 请使用 -v 标志以获取更多详细信息。 |
安全性
fpm 命令减少了带有 setuid 和 setgid 许可权的命令的数量。
示例
- 要应用 fpm 命令的低级别安全设置,请输入:
此命令还将处理 /usr/lib/security/fpm/custom/med/ 目录中的文件列表。fpm –l low - 要检查当前是否将系统命令设置为 fpm 低级别许可权,请输入:
此命令将报告带有一致性许可权的所有文件。fpm –c –l low - 要恢复传统的箱外缺省许可权,请输入:
此命令还将处理 /usr/lib/security/fpm/custom/default/ 目录中的文件列表。fpm –l default - 为了使系统与 fpm 命令的高级别安全相一致(不更改任何文件许可权),需要作出某些许可权更改,要列示或预览这些许可权更改,以请输入:
此命令还可预览 /usr/lib/security/fpm/custom/high/ 目录中的任何文件列表。fpm -l high –p - 要应用 fpm 命令的高级别安全设置,请输入:
此命令还将处理 /usr/lib/security/fpm/custom/high/ 目录中的文件列表。fpm –l high - 要列示经 fpm 命令更改后系统的当前状态,请输入:
fpm –s - 如果在 2007 年 1 月 7 日a.m 8:00 运行fpm-l level命令、 则fpm命令会在进行任何更改之前捕获受影响文件的权限状态。 将文件权限恢复到 2007 年 1 月 7 日a.m 8:00 时的状态、 请输入:
fpm –l default –f /var/security/fpm/log/01072007_08:00:00
文件
| 项 | 描述 |
|---|---|
| /usr/lib/security/fpm/data/default_list_example | 包含缺省的箱外许可权和文件。 |
| /usr/lib/security/fpm/data/high_fpm_list | 包含可用 -l high 标志更改其许可权的文件的列表。 |
| /usr/lib/security/fpm/data/med_fpm_list | 包含可使用 -l medium 或 -l low 标志更改其许可权的文件的列表。 |
| /usr/lib/security/fpm/custom/high/* | 当选择 -l high 级别时,此目录中的文件可用作用户配置输入。 这些文件必须包含文件列表,fpm 命令可以根据此列表除去 setuid 和 setgid 许可权。 |
| /usr/lib/security/fpm/custom/medium/* | 此目录中的文件可在高级别目录中发挥相同的功能,但需要与 -l medium 标志和 -l low 标志一起使用。 |
| /usr/lib/security/fpm/custom/default/* | 此目录中的文件可在高级别目录中发挥相同的功能,但需要与 -l
default 标志一起使用。 注意:这些文件必须与/usr/lib/security/fpm/data/default_list_example文件格式相同。
|
| /usr/lib/security/fpm/data/status_fpm | 包含上次运行 fpm 命令时所更改的文件许可权的状态。 |
| /var/security/fpm/log/日期_时间 | 包含 fpm 命令所更改的文件的列表(对应于运行命令时的时间和数据)。 此文件可用作 -f 标志的输入文件,以恢复该实例的许可权。 |