tftpd 守护程序

用途

为次要文件传输协议提供服务器功能。

语法

/usr/sbin/tftpd-c ] [  -n ] [  -p ] [  ] [  -t ] [  -s ] [  -x ] [  -z ] [ -d 目录] [  选项]

描述

注: tftpd 守护程序通常由 inetd 守护程序启动。 也可使用 SRC 命令从命令行控制。

/usr/sbin/tftpd 守护程序运行次要文件传输协议(TFTP)服务器。 可以在 tftputftp 命令行上给定的完整路径名指定的目录中找到使用 TFTP 发送的文件。

注: 当审计系统正在使用时, tftp 命令, utftp 命令和 tftpd 服务器不可用。 有关更多信息,请参阅 TCP/IP 安全性审计概述audit 命令。

使用系统管理界面工具 (SMIT) 或系统资源控制器 (SRC) 通过编辑 /etc/inetd.conf/etc/services 文件可以对 tftpd 守护程序进行更改。 当没有在 /etc/inetd.conf 文件中注释掉时,缺省情况下启动 tftpd 守护程序。

inetd 守护程序从 /etc/inetd.conf 文件和 /etc/services 文件中获取其信息。

在更改 /etc/inetd.conf/etc/services 文件之后,运行 refresh -s inetdkill -1  InetdPID 命令以通知 inetd 守护程序其配置文件的更改情况。

tftpd 服务器应有一个有最小特权的用户标识。 nobody 标识允许最小权限,是缺省用户标识。

tftpd 守护程序应使用系统管理界面工具 (SMIT) 或通过更改 /etc/inetd.conf 文件来进行控制。 请输入:tftpd建议不要在命令行上执行此操作。

tftpd 服务器是多线程应用程序并且能够处理选项协商 (RFC2349)。 此功能允许客户机协商将要传输的文件大小。 还允许协商超时和较大的块大小。 仅针对读请求 (RRQ) 协商块大小 (blksize)。 因此,能够显著提高使用 TFTP 的无盘节点的引导时间性能。

读写请求的 "传输大小" 选项 (tsize) 协商允许在传输之前知道文件大小,如果在传输开始之前超过分配,那么会产生错误消息。 超时选项 (timeout) 允许客户机和服务器协商重新传输超时 (在 1 到 255 秒之间)。 tftp 客户机还必须支持 RFC2349 才能进行选项协商。

tftpaccess.ctl 文件

搜索 /etc/tftpaccess.ctl 文件以查找以allow:deny:. 其他行将被忽略。 如果文件不存在,也允许访问。 除去被拒绝的目录和文件,可以访问所允许的目录和文件。 例如,可以允许访问 /usr 目录而 /usr/ucb 目录则会被拒绝。 这意味着在 /usr 目录中的任一目录或文件(除了 /usr/ucb 目录)都可被访问。 /etc/tftpaccess.ctl 文件中的项必须为绝对路径名。

/etc/tftpaccess.ctl 文件应该仅由 root 用户写入,并且可供所有用户读取groupsothers(即,由root许可权为 644)。 用户nobody必须能够读取 /etc/tftpaccess.ctl 文件。 否则,tftpd 守护程序就不能识别文件是否存在并允许访问整个系统。 有关更多信息,请参阅样本 tftpaccess.ctl 文件,它驻留在 /usr/samples/tcpip 目录。

搜索算法假设在 tftp 命令中所用的本地路径名是绝对路径名。 它搜索 /etc/tftpaccess.ctl 文件以查找allow:/. 它重复搜索允许的路径名,每个部分路径名都通过从文件路径名添加下一个组件来构造。 匹配的最长路径名也是被允许的一种。 然后对于拒绝路径名进行同样操作,从匹配最长允许路径名开始。

例如,如果文件名为 /a/b/c 且包含 /etc/tftpaccess.ctl 文件allow:/a/bdeny:/a,将进行一个允许的匹配 (/a/b) 并且没有拒绝的匹配项,从/a/b将进行访问,并且将允许访问。

如果包含 /etc/tftpaccess.ctl 文件allow:/adeny:/a/b,将进行一个允许的匹配 (/a) 一个被拒绝的匹配开始/a(/a/b) 就会被禁止进入 如果包含 /etc/tftpaccess.ctl 文件allow:/a/b也包含了deny:/a/b,将拒绝访问,因为将首先搜索允许的名称。

使用系统资源控制器来操作 tftpd 守护程序

tftpd 守护程序是 inetd 守护程序的子服务器,这是系统资源控制器(SRC)的子系统。 tftpd 守护程序是 tcpip SRC 子系统组的成员。 当没有在 /etc/inetd.conf 文件中注释掉时,此守护程序被启用并可使用以下 SRC 命令操作:

描述
startsrc 启动子系统、子系统组或子服务器。
stopsrc 停止子系统、子系统组或子服务器。
lssrc 获取子系统、子系统组或者子服务器的状态。

标志

描述
-c 指定每个进程的并发线程的最大数目,初始线程除外。
-d 目录 指定缺省目标目录。 指定的 Directory 将用作主目录,仅用来存储文件。 仅当未指定完整路径名时,此缺省目录才会被使用。 用于检索文件的缺省目录仍为 /tftpboot
-i 记录有错误消息的调用机器的 IP 地址。
-n 允许远程用户在本机上创建文件。 如果此标志未指定,远程用户只被允许读取那些对其他用户有读许可权的文件。
-p 指定输入请求的端口号。
-r 选项 指定要禁用的 tftp 选项协商。 可以使用多个 -r 标志。 例如, /etc/inetd.conf 文件中的以下行禁用 tsizeblksize的选项协商:
   tftp  dgram  udp6  SRC  nobody  /usr/sbin/tftpd tftpd -n -r tsize -r blksize
-s 打开套接字级别的调试。
-t 为数据报指定超时值。
-v 当所有文件被 tftpd 守护程序成功传输时,记录指示性消息。 此记录跟踪是谁使用 tftpd 守护程序在系统之间来回远程传输文件。
-x 指定等待数据报的最大超时。
-z 指定用于传输的最大允许段大小。

示例

注: 可以使用 SMIT 或编辑 /etc/inetd.conf 文件来指定 tftpd 守护程序的参数。

  1. 要启动 tftpd 守护程序,请输入以下命令:
    startsrc  -t tftp
    此命令启动 tftpd 子服务程序。
  2. 要正常停止 tftpd 守护程序,请输入以下命令:
    stopsrc  -t tftp
    该命令允许启动所有暂挂的连接并完成现有的连接,但会阻止启动新的连接。
  3. 要强制停止 tftpd 守护程序和所有 tftpd 连接,请输入以下命令:
    stopsrc -f -t tftp
    该命令会立刻终止所有暂挂的连接和现有的连接。
  4. 要显示有关 tftpd 守护程序的简短状态报告,请输入以下命令:
    lssrc -t tftp
    该命令返回守护程序名、进程标识以及状态(活动的或不活动的)。