如何chroot的tftp服务

我有tftp安装在Ubuntu 10.04下面的/etc/xinetd.d/tftp文件。
我可以使用连接到tftp服务器

  tftp 10.1.1.54
得到pxelinux.0

并且它没有问题地重新获取文件。 当我尝试:

得到/pxelinux.0

我得到了

错误代码2:访问冲突

这是一个问题,因为HP PXE引导环境请求带有/的pxelinux.0。 我怀疑它试图使用服务器根目录作为/ root而不是使用/ tftpboot作为根目录。 我已经看了文档,但我看不到一种方法来chroot tftp所以正确地解释了主要的斜杠

提前致谢。

服务tftp
 {
 protocol = udp
端口= 69
 socket_type = dgram
等待=是
用户=无人
服务器= /usr/sbin/in.tftpd
 server_args = / tftpboot
禁用=否
 }

这可能是一个权限问题,/ tftpboot和pxelinux.0世界可读?


编辑:你有没有尝试使用-s参数 tftpd来设置目录?

你可以使用-s选项来tftpd来完成你想要的。

如果我有一个像这样的目录/tftpboot

 # ls /tftpboot afile 

我这样运行tftpd

 # tftpd -l -s /tftpboot 

那么这个:

 tftp> get afile 

相当于这个:

 tftp> get /afile 

您可以修改configuration文件的server_args行:

 service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }