# Samba [TOC] ## Samba - ~~巴西 SAMBA 舞蹈~~ - 讓同一個區域網路內的電腦們之間分享檔案 #### 由來 - 早期的網路世界當中,檔案資料在不同主機之間的傳輸大多是使用 FTP - 用 FTP 傳輸檔案( Unix Like )無法直接修改主機上面的檔案資料! - 必須要將檔案從伺服器下載到自己電腦後才能修改 - 有可能會忘記回傳到伺服器 -> 麻煩! - NFS 僅能讓 Unix 機器溝通, CIFS 只能讓 Windows 機器溝通 - 蹦出 SMB Server! ### 應用 - 可直接連線的檔案伺服器:使用者可以掛載共享檔案夾,並直接像使用本地檔案一樣操作 - 團隊的資料就分散在各個電腦當中 - 用 SAMBA 將硬碟空間分享出來 - 使用者要登入 SAMBA 伺服器主機時需要輸入使用者資料 (帳號與密碼),而不同的登入者會取得不一樣的目錄資源 - 可以避免自己的資料在公用電腦上面被偷看 - 在不同的公用電腦上面都可以登入 SAMBA 主機,資料的使用上面真是相當的棒啊! - 印表機伺服器:以 Linux 分享的印表機來印報告 - Windows 跟 Linux 共享檔案! ### Samba 實作 **讓自己的電腦與虛擬機共享檔案** - 下載:`sudo apt install samba` - 設定檔案:`sudo vim /etc/samba/smb.conf` ```bash [global] workgroup = WORKGROUP server string = Samba Server security = user [shared] path = /srv/samba/shared writable = yes browsable = yes ``` - [global] 區塊: 全域設定。 - workgroup:指定工作組名稱。 - security:訪問方式(user 表示使用帳號驗證)。 - [shared] 區塊: 定義共享資源。 - path:共享的目錄路徑。 - writable:是否允許寫入。 - 建立共享資料夾:`sudo mkdir -p /srv/samba/shared` - 給權限:`sudo chmod -R 775 /srv/samba/shared` - 如果是自己用權限可給 777 - 重新啟動:`sudo systemctl restart smbd nmbd` - 建立使用者:`sudo smbpasswd -a <username>` - 使用者必須是系統中已存在的 Linux 使用者 - 測試時間! - 在 **虛擬機** 上,使用檔案管理器輸入: - ` smb://<SAMBA 伺服器的 IP 地址>/shared` - 在 **Windows** 上,使用檔案總管輸入: - ` \\<SAMBA 伺服器的 IP 地址>\shared` - 看 IP:`ip a` :::info #### DEMO 用 linux 連上助教的電腦! ::: - 斷開連接 (使用者端 (Windows)) - 打開命令提示字元 (CMD),輸入:`net use` - 可看到正在使用的網絡共享 - 斷開指定的共享連接:`net use \\<SAMBA 伺服器的 IP 地址>\shared /delete`