web-dev-qa-db-fra.com

violation d'accès tftp code d'accès 2 (tftp ne fonctionne pas)

Informations système:

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

Utiliser Ubuntu 14.04.2 LTS.

Je me bats pour exécuter tftp localhost.

A tenté:

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

Maintenant je reçois une erreur:

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

la permission du fichier que j'essaye de mettre est:

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

Autorisation du dossier/tftpboot:

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

Informations complémentaires

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
}

S'il te plaît, aide-moi à résoudre ce problème.

3
Ravi Sharma

Le fichier que vous souhaitez placer via tftp doit exister dans le répertoire de destination et disposer des autorisations lui permettant d'être écrasé. Pour votre instance, test doit exister dans /tftpboot.

Vous pouvez voir la raison dans la section BUGS de la page de manuel de tftp.

Je ne parviens pas à trouver comment mettre un nouveau fichier via tftp, mais je ne sais toujours pas comment.

4
leondgarse

Cochez syslog et vous verrez que:

 tftpd: serving file from /srv/tftp

En gros, il y a un bogue et dans votre cas, vous devrez déplacer tous les fichiers du dossier /tftpboot vers le /srv/tftp (créer le dossier /srv/tftp s'il n'existe pas) et vous assurer que vous accordez les autorisations 777, ainsi que tous les fichiers qu'il contient, redémarrez xinetd et le ça marche!

4
enjoy

Comme le mentionne leondgarse, vous ne pouvez pas télécharger de nouveaux fichiers directement avec vos paramètres. Mais vous pouvez ajouter "-c" à server_args, comme ceci:

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
}

Pour plus de détails, vous pouvez voir la page de manuel de "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.
2
alfred

Cela peut être dû au fait que 14.04 a un paramètre de serveur tftp dans /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

vous pouvez commenter cette ligne et réessayer.

J'ai eu ça d'ici: http://www.beer.org/blog/tftpd-and-xinetd-on-ubuntu.html

2
hashtpaa

Dépannage du serveur TFTPD sur Ubuntu 14.0.4 par Dayanand Ambawade

Étape 1: Éditez /etc/inetd.conf

tftp dgram udp attendre personne/usr/sbin/tcpd /usr/sbin/in.tftpd/srv/tftpboot

Étape 2: Écriture du script pour tftpd

Sudo 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 = /srv/tftpboot -s
   disable = no
}

Étape 3: Créer un répertoire et définir les autorisations

Sudo mkdir /srv/tftpboot
Sudo echo "Test TFTP Server" > /srv/tftpboot/test.txt
Sudo chmod 777 -R /srv/tftpboot
Sudo chown -R nobody.root /srv/tftpboot

Étape 4: Démarrer le service

Sudo service xinetd restart
Sudo service inetutils-inetd restart

Étape 5: serveur de test

echo "get test.txt" | tftp 127.0.0.1
cat test.txt
Test TFTP Server

Espérons que cela résoudra le problème. Cordialement

0
Dayanand Ambawade

Je ne sais pas si cela ressemble à la conception de TFTP, mais lorsqu’il est mis, cela ne vous permet pas de créer un fichier.

Solution:

Créez le fichier avant et donnez 777 droits. Exécutez à nouveau le transfert et cela devrait fonctionner.

0
michael

S'il vous plaît vérifier les bits de mode de fichiers.

Dans mon cas, le répertoire racine de tftp est /opt/tftpboot/

À l'aide de la commande ls -l, je pouvais voir que le mode de fichier était 600. Par conséquent, lorsque j'essaie d'accéder à tftp pour obtenir ce fichier avec anonyme, il signale une violation d'accès.

Cela peut être la cause de cette erreur. Mais il peut y avoir une autre raison pour cela.

0
user723651