tftp erro código 2 violação de acesso (tftp não funciona)

3

Informações do sistema:

Linux ravi-Inspiron-N5010 3.13.0-46-generic #79-Ubuntu SMP Tue Mar 10
20:08:14 UTC 2015 i686 i686 i686 GNU/Linux

Usando o Ubuntu 14.04.2 LTS.

Estou com dificuldades para executar o tftp localhost.

Tentei:

root@ravi-Inspiron-N5010:/home/ravi/Desktop# service tftpd-hpa restart
tftpd-hpa stop/waiting
tftpd-hpa start/running
root@ravi-Inspiron-N5010:/home/ravi/Desktop# service tftpd-hpa status
tftpd-hpa start/running

Agora recebo o erro:

root@ravi-Inspiron-N5010:/home/ravi/Desktop# tftp 127.0.0.1
tftp> put test
Error code 2: Access violation
tftp> 

permissão do arquivo que estou tentando colocar é:

root@ravi-Inspiron-N5010:/home/ravi/Desktop# ls -ld test 
-rwxrwxrwx 1 ravi ravi 0 Mar 21 20:09 test

Permissão da pasta / tftpboot:

root@ravi-Inspiron-N5010:/# ls -ld  tftpboot/
drwxrwxrwx 2 nobody root 4096 Mar 15 15:34 tftpboot/

Informações adicionais

root@ravi-Inspiron-N5010:/home/ravi/Desktop# nano /etc/xinetd.d/tftp

service tftp


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

Por favor, ajude-me a resolver este problema.

    
por Ravi Sharma 21.03.2015 / 16:15

6 respostas

4

O arquivo que você deseja colocar via tftp deve existir no diretório de destino e ter permissões para substituí-lo. Para sua instância, test deve existir em /tftpboot .

Você pode ver o motivo na seção man page do Bugs.

Estou com dificuldades para resolver como colocar um novo arquivo via tftp, mas ainda não sei como.

    
por leondgarse 03.06.2015 / 12:30
3

Verifique syslog e você verá que:

 tftpd: serving file from /srv/tftp

Basicamente, há um bug e você precisará, no seu caso, mover todos os arquivos da pasta /tftpboot para /srv/tftp (faça a pasta /srv/tftp se não existir) e certifique-se de conceder 777 permissões e para todo o arquivo dentro, reinicie o xinetd e ele funcionará!

    
por enjoy 20.04.2016 / 15:20
2

Isso pode ter ocorrido porque o 14.04 possui uma configuração do servidor tftp em /etc/inetd.conf :

#BOOT: TFTP service is provided primarily for booting.  Most sites
#       run this only on machines acting as "boot servers."
tftp    dgram  udp wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /srv/tftp

você pode comentar esta linha e tentar novamente.

Eu tenho isso daqui: link

    
por hashtpaa 10.12.2015 / 01:21
1

Como mencionado por você, você não pode carregar novos arquivos diretamente com suas configurações. Mas você pode adicionar "-c" a server_args, como:

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

Para detalhes, você pode ver a página man do "in.tftpd":

   --create, -c
          Allow new files to be created.  By default, tftpd will only allow upload of files that already exist.  Files are created with default permissions allow‐
          ing anyone to read or write them, unless the --permissive or --umask options are specified.
    
por alfred 19.12.2017 / 15:04
0

Não tenho certeza se isso é algo com o design do TFTP, mas ao fazer isso não é possível criar um arquivo.

Solução:

Crie o arquivo antes e dê direitos ao 777. Execute a transferência novamente e isso deve funcionar.

    
por michael 07.01.2016 / 06:50
0

Por favor, verifique os bits do modo de arquivos.

No meu caso, o diretório raiz do tftp é /opt/tftpboot/

Usando o comando ls -l , pude ver que o modo de arquivo era 600, então quando tento acessar o tftp para obter esse arquivo com anônimo, ele relata uma violação de acesso.

Isso pode ser a causa desse erro. Mas pode haver outro motivo para isso.

    
por user723651 10.08.2017 / 09:42