“权限被拒绝”尝试使用 TFTP 获取文件

cnd*_*cnd 6 fedora tftp

我开始了tftp-server,但我对这个错误感到困惑:

nisemono ncdy # chmod 777 /tftproot/test 
mode of `/tftproot/test' changed to 0777 (rwxrwxrwx)
nisemono ncdy # tftp 192.168.0.2        
tftp> get test
Error code 0: Permission denied
Run Code Online (Sandbox Code Playgroud)

复制了 0 个字节的文件...但是为什么权限被拒绝???我不喜欢这个消息。

cat /etc/xinetd.d/tftp
service tftp
{
    disable = no
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /tftproot
    per_source      = 11
    cps             = 100 2
    flags           = IPv4
}
Run Code Online (Sandbox Code Playgroud)

为什么这会失败?我究竟做错了什么?

vas*_*uez 7

可能是selinux的问题。ls -alZ在目录中做一个。在 RHEL5/Centos5 上,上下文应该是user_u:object_r:tftpdir_t.

你可以跑来restorecon -Rv /tftproot修复它。

编辑: 刚刚看到了 Fedora 标签。看来您使用的不是 F16 而是早期版本,因此上述说明应该对您有用。使用 F16,tftproot 位于 /var/lib 中,上下文为system_u:object_r:tftpdir_rw_t:s0.