Ubuntu中tftp測試

本篇文章主要是測試tftp時遇到的問題,順帶粘貼博友配置tftp的過程。本博客旨在經驗交流,若有不妥之處,望批評指正。

第一部分: TFTP的配置  

  (注:本部分轉自http://blog.csdn.net/haiwil/article/details/6606648點擊打開鏈接,有適當修改)

1. sudo apt-get install tftp tftpd xinetd

2. 建立配置文件
   sudo vim /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 /tftpboot       //tftp服務器的根目錄(見3)
   }
3. 建立tftp服務文件目錄
    sudo mkdir /tftpboot   //tftpboot這是一個文件名,可以隨便取,但是要和2中的保持一致
修改權限:sudo chmod 777 /tftpboot -Rf   
4. 重新啓動服務。
        當配置好tftp的配置文件後,需要重新啓動一下xinetd;在終端中輸入 sudo /etc/init.d/xinetd reload,重新加載一下進程;再輸入 sudo /etc/init.d/xinetd restart,重啓服務。
記住,每次修改完配置文件後,都需要重新啓動一下服務。


第二部分:TFTP的測試

1. 編輯測試文件

      在測試安裝配置好的tftp是否正確之前,需要準備編輯測試文件。這個時候就要搞清楚目錄的關係。

      /tftpboot:根目錄下的tftpboot是服務器,即上傳至tftp服務器的文件都將存放在此目錄中,這也是爲什麼把它放在根目錄下---方便。

        A. 在/tftpboot下建立測試文件

          $ vim file  //編輯內容:this is in the tftpboot!  保存退出。

          $ll    //(ll:這是兩個小寫的字母L)查看file文件的權限爲-rw-rw-r--

        B. 對應於服務器目錄,沒有與之對應的客戶端目錄,用戶可以任意目錄下上傳文件,或者下載文件,但是最好在 /opt 下。

          $cd /opt

          $sudo vim file1    //編輯內容:this is in the opt!   保存退出。

          $ll                          // 查看file1的權限爲-rw-r--r--


2. 下載文件

        下載文件之前,先有啓動tftp連接:

          $cd /opt                //將下載的文件放在/opt目錄

          $tftp localhost    //或者 tftp 127.0.0.1)

          tftp> get file         //get指令:從服務器下載文件到當前目錄

  如下圖:出現了permission denied 錯誤

          

  分析:當前用戶是mike ,而在配置service tftp時有:user = root (見第一部分步驟2),即要求是root用戶才行。

            tftp>q                 //退出tftp

            $sudo su         //切換到root用戶

  然後輸入密碼,如下圖:

         

  重複之前的命令:

            

   然後我們到 /opt目錄下查看下載的file文件(重新打開一個終端),如圖:

            

   從圖中我們可以看到下載的文件file,之前建立的文件file1。通過cat指令,顯示了file中的內容,正確。


3. 上傳文件

      上傳文件和下載文件不同。向tftp服務器上傳文件時,需要在服務器端先建立一個同名文件,並且該文件的權限至少是-rw-rw-rw-。然後在1中編輯的文件的權限沒有達到要求,那我們來看看會出現什麼問題。

接着發送文件的後面:

      $tftp>put file1      //put指令:把當前目錄下的file1文件上傳到服務器

 如下圖,出現了Error code 2:access violation的錯誤。

        

  那麼我們在服務器下建立同名文件之後呢?

    在/tftpboot目錄下,如下圖框1:

        $vim file1    //新建同名文件,不用編輯,保存退出即可。

        $cat file1    //沒有內容,即爲空。

        $ll file1        //查看file1文件的權限,滿足要求

  然後在終端中上傳文件,如下圖框2,發現文件可以上傳。

   然後在/tftpboot目錄下cat file1發現是來自/opt的內容,即正確。

       

        

  上面討論了服務器中有同名文件及文件的權限滿足時的情況,那我們來看看文件權限不滿足的是怎樣的?

     在/tftpboot目錄下:

       $sudo chmod 664 file1    //修改file1的權限爲-rw-rw-r--

   從圖中可以看到,修改權限之後就出現了Error code 2:access violation的錯誤。

       

      在此要注意的時,我們在/tftpboot下建立同名文件時,要注意它的權限。當它滿足-rw-rw-rw-時自然就可以上傳文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章