tftpd 守护程序
用途
为次要文件传输协议提供服务器功能。
语法
/usr/sbin/tftpd [ -c ] [ -n ] [ -p ] [ - ] [ -t ] [ -s ] [ -x ] [ -z ] [ -d 目录] [ - 选项]
描述
注: tftpd 守护程序通常由 inetd 守护程序启动。 也可使用 SRC 命令从命令行控制。
/usr/sbin/tftpd 守护程序运行次要文件传输协议(TFTP)服务器。 可以在 tftp 或 utftp 命令行上给定的完整路径名指定的目录中找到使用 TFTP 发送的文件。
使用系统管理界面工具 (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 inetd 或 kill -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 用户写入,并且可供所有用户读取groups和others(即,由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/b和deny:/a,将进行一个允许的匹配 (/a/b) 并且没有拒绝的匹配项,从/a/b将进行访问,并且将允许访问。
如果包含 /etc/tftpaccess.ctl 文件allow:/a和deny:/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 文件中的以下行禁用 tsize 和 blksize的选项协商: |
| -s | 打开套接字级别的调试。 |
| -t | 为数据报指定超时值。 |
| -v | 当所有文件被 tftpd 守护程序成功传输时,记录指示性消息。 此记录跟踪是谁使用 tftpd 守护程序在系统之间来回远程传输文件。 |
| -x | 指定等待数据报的最大超时。 |
| -z | 指定用于传输的最大允许段大小。 |
示例
注: 可以使用 SMIT 或编辑 /etc/inetd.conf 文件来指定 tftpd 守护程序的参数。
- 要启动 tftpd 守护程序,请输入以下命令:startsrc -t tftp此命令启动 tftpd 子服务程序。
- 要正常停止 tftpd 守护程序,请输入以下命令:stopsrc -t tftp该命令允许启动所有暂挂的连接并完成现有的连接,但会阻止启动新的连接。
- 要强制停止 tftpd 守护程序和所有 tftpd 连接,请输入以下命令:stopsrc -f -t tftp该命令会立刻终止所有暂挂的连接和现有的连接。
- 要显示有关 tftpd 守护程序的简短状态报告,请输入以下命令:lssrc -t tftp该命令返回守护程序名、进程标识以及状态(活动的或不活动的)。