我开始了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
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
}
为什么会失败?我究竟做错了什么?
答案1
可能是selinux的问题。ls -alZ
在目录中执行 a 。在 RHEL5/Centos5 上,上下文应该是user_u:object_r:tftpdir_t
.
您可以运行restorecon -Rv /tftproot
来修复它。
编辑:
刚刚看到软呢帽标签。您似乎使用的不是 F16,而是早期版本,因此上述说明应该适合您。使用 F16 时,tftproot 位于 /var/lib 中,上下文为system_u:object_r:tftpdir_rw_t:s0
.
答案2
您是否尝试将文件保存到没有写入权限的目录中?你/etc
打电话的时候在吗tftp hostaddr
?
答案3
这就是 setenforce 的问题。键入命令 setenforce 0 as SUDO。这解决了这个问题。