Ubuntu
如何對 tftp 服務進行 chroot
我在 Ubuntu 10.04 上安裝了 tftp,並帶有以下 /etc/xinetd.d/tftp 文件。
我可以使用連接到 tftp 伺服器
tftp 10.1.1.54 獲取 pxelinux.0
它可以毫無問題地重新處理文件。當我嘗試:
獲取 /pxelinux.0
我得到一個
錯誤程式碼 2:訪問衝突
這是一個問題,因為 HP PXE 引導環境請求帶有前導 / 的 pxelinux.0。我懷疑它試圖將伺服器根目錄用作 /root 而不是 /tftpboot 用作根。我查看了文件,但看不到 chroot tftp 的方法,因此正確解釋了前導斜杠
提前致謝。
服務 tftp { 協議 = udp 埠 = 69 socket_type = dgram 等待=是的 使用者 = 沒有人 伺服器 = /usr/sbin/in.tftpd server_args = /tftpboot 禁用 = 否 }
這可能是權限問題,/tftpboot 和 pxelinux.0 是否可讀?
**編輯:**您是否嘗試過使用 tftpd 的-s 參數來設置目錄?
你可以使用
-s
tftpd 的選項來完成你想要的。如果我有這樣的目錄
/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 }