如何 chroot tftp 服务

如何 chroot tftp 服务

我在 Ubuntu 10.04 上安装了 tftp,文件如下 /etc/xinetd.d/tftp。
我可以使用以下命令连接到 tftp 服务器

tftp 10.1.1.54
获取 pxelinux.0

并且它毫无问题地恢复了文件。当我尝试:

获取/pxelinux.0

我得到一个

错误代码 2:访问冲突

这是一个问题,因为 HP PXE 启动环境请求带有前导 / 的 pxelinux.0。我怀疑它试图使用服务器根目录作为 / 根目录,而不是使用 /tftpboot 作为根目录。我查看了文档,但我找不到 chroot tftp 的方法,因此它正确地解释了前导斜杠

提前致谢。

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

答案1

这可能是权限问题,/tftpboot 和 pxelinux.0 是否可供所有人读取?


编辑:您是否尝试过使用-s 参数给tftpd设置目录?

答案2

您可以使用-stftpd 选项来完成您想要的操作。

/tftpboot如果我有这样的目录:

# ls /tftpboot
afile

我是tftpd这样跑步的:

# tftpd -l -s /tftpboot

然后是这个:

tftp> get afile

相当于这样:

tftp> get /afile

您可以修改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
}

相关内容