利用samba建立ubuntu與windows間點到點互連

        實驗室的電腦安裝的是Windows XP系統,我自己的筆記本安裝的是ubuntu,之前苦於常常想操作電腦A的時候,卻按了電腦B的鍵盤,讓我渾身不自在,於是google網上的解決方法,發現了synergy這個好東西,通過共享設備的方式,兩電腦共用同一套鼠標鍵盤,操作問題得到了解決!

        然而,synergy兩臺電腦不能互相拷貝文件,作爲一個弱弱的碼農,目前還沒有能力在synergy這個開源項目上擴展文件共享的功能,然而,笨人有笨人的方法,我決定給筆記本上個samba服務器,把自己的文件全部扔在服務器的共享目錄下,windows端通過連接這個服務器,就可以同步修改這些文件,同時也就實現了文件共享,非常方便。


        參考文章1,具體步驟如下:

前提條件:

       你的Linux機器最好是有一個靜態IP,當然是DHCP的話,也可以用,不過就不能使能“WINS”選項功能(後面會提到)。

(1)linux端:

        先安裝samba服務器

       sudo apt-get install samba

        然後確保samba當前是停止的

       sudo /etc/init.d/samba stop

        備份舊的配置

       sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.template

        創建新的配置

      sudo touch /etc/samba/smb.conf
       編輯此文件
      sudo gedit /etc/samba/smb.conf

[global]
    ; General server settings
    netbios name = YOUR_HOSTNAME
    server string =
    workgroup = YOUR_WORKGROUP
    ; announce version = 5.0
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192

    passdb backend = tdbsam
    security = user
    null passwords = true
    username map = /etc/samba/smbusers
    name resolve order = hosts wins bcast

    wins support = yes

    printing = CUPS
    printcap name = CUPS

    syslog = 1
    syslog only = yes

; NOTE: If you need access to the user home directories uncomment the
; lines below and adjust the settings to your hearts content.
;[homes]
    ;valid users = %S
    ;create mode = 0600
    ;directory mode = 0755
    ;browseable = no
    ;read only = no
    ;veto files = /*.{*}/.*/mail/bin/

; NOTE: Only needed if you run samba as a primary domain controller.
; Not needed as this config doesn't cover that matter.
;[netlogon]
    ;path = /var/lib/samba/netlogon
    ;admin users = Administrator
    ;valid users = %U
    ;read only = no

; NOTE: Again - only needed if you're running a primary domain controller.
;[Profiles]
    ;path = /var/lib/samba/profiles
    ;valid users = %U
    ;create mode = 0600
    ;directory mode = 0700
    ;writeable = yes
    ;browseable = no

; NOTE: Inside this place you may build a printer driver repository for
; Windows - I'll cover this topic in another HOWTO.
[print$]
    path = /var/lib/samba/printers
    browseable = yes
    guest ok = yes
    read only = yes
    write list = root
    create mask = 0664
    directory mask = 0775

[printers]
    path = /tmp
    printable = yes
    guest ok = yes
    browseable = no

; Uncomment if you need to share your CD-/DVD-ROM Drive
;[DVD-ROM Drive]
    ;path = /media/cdrom
    ;browseable = yes
    ;read only = yes
    ;guest ok = yes

[MyFiles]
    path = /media/samba/
    browseable = yes
    read only = no
    writeable = yes
    guest ok = no
    create mask = 0770
    directory mask = 0770
    ; force user = YOUR_USERNAME
    force group = YOUR_USERGROUP
       其中,有幾個地方要改:
-> netbios name = YOUR_HOSTNAME
      用你自定義的主機名替換
"YOUR_HOSTNAME",中間不能有空格。 
      比如:
      netbios name = LUOCANWEI_SERVER
-> workgroup = YOUR_WORKGROUP
      用windows的工作組名稱替換"YOUR_WORKGROUP" ,要確保跟連接的windows所在的工作組是一致的。
      比如:
      workgroup = WORKGROUP

-> wins support = yes
     如果你的Linux機器有一個靜態IP地址,或者你不能配置你的路由/服務器提供一個固定的租用DHCP地址,這個配置選項配置爲"no"。這樣的話,你就不能使用到WINS的優勢了。

-> [MyFiles]
     這個是windows所看到的共享目錄的名字,不更改也行,或者改爲你自己想要的也行。不要超過31個字符,不要使用空格。

-> path = /media/samba/
     共享文件存儲的真實目錄。如果linux上沒有這個目錄,就新建一個!
     建議創建在另外一個有足夠大存儲空間的分區,如/home 
    sudo mkdir /home/samba
     比如:
     path = /home/samba/

-> browseable = yes
    windows端可以看到這個文件夾

-> writeable = yes
    可以寫

    其他選項,如create mask, directory mask,force user,force group就參看鏈接2。
    這樣,我們就修改完smb.conf了,保存之~~啓動吧,騷年~步驟是:

    sudo /etc/init.d/samba start
    若有錯誤,檢查配置文件有沒有不對的地方,如路徑是不是不存在;

    接着添加用戶

    sudo smbpasswd -L -a your_username
    sudo smbpasswd -L -e your_username
    比如:
    sudo useradd -s /bin/true ray ;linux創建新用戶
    sudo smbpasswd -L -a ray  ;之後要求你輸入和確認smb的登陸密碼
    sudo smbpasswd -L -e ray  ;使能
    其中"-s /bin/true" , -s就是shell,true命令啥都不做,只設置退出碼爲0。簡單來說,就是避免用戶直接通過shell登陸我的Linux機子。
    在Linux底下,每個程序執行完畢都會返回一個退出碼給調用者,一般情況下0表示成功,其他值表明有問題,當然某些程序的退出碼有特殊含義。有些shell下true可能是個內建命令,至少bash下是。(do nothing, successfully。Exit with a status code indicating success. NOTE: your shell may have its own version of true, which usually supersedes the version described here.  Please refer to your shell’s documentation for details about the options it supports.)。相對應的命令是false,也是啥都不幹,但退出碼設置爲1。

    到這裏,服務器配置基本就歐了。


2) window端:

     如果上面設置的"wins support" 是"no"的話,跳過下面這步設置:
     控制面板->網絡連接->LAN或高速Internet,找到你的LAN連接->右鍵屬性->"TCP/IP" 協議->點擊"屬性" 按鈕-> 點擊 "高級..."->"WINS"-> "添加"->填入Linux的ip地址->"添加"->"啓用 NetBIOS over TCP/IP"->重啓Windows

    接着,可以映射網絡驅動器:

    "我的電腦"-> "映射網絡驅動器"->選擇盤符->敲入 \\LUOCANWEI_SERVER\MyFiles

    注意: 如果不是靜態ip,LUOCANWEI_SERVER可能得改爲乖乖每次敲打ip了,即敲入\\<ip-address>\MyFiles
    完成。


參考:1 http://ubuntuforums.org/showthread.php?t=202605

           2 http://www.1987.name/686.html 

           3 https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

           http://www.samba.org/samba/

           5 http://zhidao.baidu.com/question/490153956.html

本文:http://blog.csdn.net/rayluoluo4/article/details/39718685


發佈了35 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章