Linux:Samba檔案共享伺服器搭建與訪問
阿新 • • 發佈:2018-11-26
本文連結: https://blog.csdn.net/xietansheng/article/details/83932033
Samba 是 Linux 和 Unix 系統上實現 SMB協議 的一款免費軟體,能在 Windows、Linux、Mac 系統上訪問 Linux 系統上的的共享檔案。
相關網站:
1. Samba 服務端(Ubuntu)
1.1 使用 apt-get 命令安裝 Samba:
sudo apt-get update
sudo apt-get install samba
安裝過程中如果某項依賴無法安裝或需要指定的版本,可以先逐個安裝依賴後再安裝 samba。
1.2 建立 Samba 訪問賬戶
先建立 Samba使用者,後面配置共享資料夾時需要使用。
/*
* 建立一個Linux系統使用者,不需要指定密碼,該使用者用於新增到 Samba 中
* 也可以不建立,直接使用已存在的Linux系統使用者。
*/
sudo useradd user01
/*
* 新增一個名稱為 user01 的 Samba使用者,回車後設置該Samba使用者的密碼,
* 該密碼是Samba使用者的獨立密碼,與對應的Linux系統使用者密碼不同。
*
* 注意:
* 這裡新增的 Samba使用者名稱 “user01” 必須是已存在的當前Linux系統使用者名稱,即 /etc/passwd 檔案中存在的使用者名稱,
* 也可以通過 sudo useradd user01 新建一個使用者,不需要指定密碼,則該使用者將只能從遠端訪問,不能從本機登入。
*/
sudo smbpasswd -a user01
smbpasswd 使用者操作常用命令:
smbpasswd -a username // 增加使用者
smbpasswd -d username // 凍結使用者,凍結後不能在登入了
smbpasswd -e username // 恢復使用者,解凍後解凍
smbpasswd -n username // 把使用者的密碼設定成空
smbpasswd -x username // 刪除使用者
1.3 建立 共享資料夾
共享資料夾必須保證訪問的使用者(Samba使用者名稱對應的Linux系統使用者)擁有讀寫許可權。
sudo mkdir /home/使用者名稱/ShareDemo // 建立一個用於共享的資料夾
sudo chomd 777 /home/使用者名稱/ShareDemo // 設定該資料夾的許可權使其讓所有使用者可讀可寫可執行
1.4 配置 共享資料夾
Samba的基礎配置檔案: /etc/samba/smb.conf
// 先備份預設配置,防止誤刪或誤改
// 如果沒有備份,又被誤刪,也可以嘗試執行 “sudo cp /usr/share/samba/smb.conf /etc/samba/” 恢復
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
// 開啟 Samba 的 smb 配置檔案
sudo gedit /etc/samba/smb.conf
把以下內容新增到smb.conf
配置檔案的尾部(需要共享多個資料夾,可配置多個)
[ShareDemo]
comment = Linux Shared Folder
path = /home/使用者名稱/ShareDemo
valid users = user01
public = no
read only = no
create mask = 0700
directory mask = 0700
available = yes
browseable = yes
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
部分欄位說明:
- [ShareDemo]: 共享名稱(共享資料夾的名稱)
- comment: 描述
- path: 共享資料夾的路徑
- valid users: 可訪問的使用者,多個使用者用,隔開(使用上面步驟建立的 Samba使用者名稱)
- public: 訪問是否不需要密碼
- read only: 是否只讀
- create mask: 檔案許可權設定
- directory mask: 檔案許可權設定
- available: 是否有效
- browseable: 是否可瀏覽,no表示隱藏,需要通過 IP+共享名稱 進行訪問
- display charset、unix charset、dos charset: 這三個是為了防止出現中文目錄亂碼的情況
其他配置參考:samba.org、ubuntu/samba
1.5 Samba 服務的啟動和停止
配置完 smb.conf 後,重啟 Samba 服務:
// 重啟服務
sudo service smbd restart
// Samba 服務重啟後,可以使用下面命令檢查 smb.conf 配置檔案是否有語法錯誤
testparm
其他服務管理命令:
sudo service smbd start // 啟動
sudo service smbd stop // 關閉 Samba 伺服器:
sudo service smbd restart // 重新啟動 Samba 伺服器:
sudo service smbd status // 檢視 Samba 服務狀態
ps -aux | grep smbd // 檢視 samba 是否正在執行
2. 訪問 SMB 共享資料夾
假設 Samba 伺服器的 IP 地址為192.168.0.100
,共享資料夾的名稱為ShareDemo
2.1 Windows 連線 SMB 共享資料夾
- Windows鍵 + R,在開啟的執行輸入框中輸入:
\\192.168.0.100
或\\192.168.0.100\ShareDemo
,確定; - 輸入 samba 配置的 使用者名稱 和 密碼,確定;
- 在列出的共享資料夾列表中選擇要訪問的資料夾。
2.2 Linux 掛載 SMB 共享資料夾
(1) 使用 mount 命令把指定的 SMB共享資料夾 掛載到本地檔案系統的一個資料夾
// 先建立一個用於掛載的空資料夾
sudo mkdir /mnt/ShareDemo
// 掛載操作
sudo mount -t smbfs -o username=使用者名稱,password=密碼 //192.168.0.100/ShareDemo /mnt/ShareDemo
// 有的系統已經不能識別 smbfs 檔案系統,用 cifs 代替 smbfs(個人感覺此方法成功概率較高)
sudo mount -t cifs -o username=使用者名稱,password=密碼 //192.168.0.100/ShareDemo /mnt/ShareDemo
// 掛載之後,使用 umount 命令可以解除安裝
sudo umount /mnt/ShareDemo
(2) 使用 smbclient 命令訪問指定的 SMB共享資料夾
// 如果沒有安裝 smbclient 客戶端,需要先安裝
sudo apt-get install smbclient
// 列出所有共享資料夾
smbclient -L //192.168.0.100/ShareDemo -U 使用者名稱
// 登入 SMB服務端,回車後輸入密碼,登入成功,然後用相關命令操作(get下載檔案,用put上傳檔案, help檢視支援的命令)
smbclient //192.168.0.100/ShareDemo -U 使用者名稱
// 也可以使用者名稱和密碼一起輸入(用%分隔),直接登入成功,然後進行相關命令操作
smbclient //192.168.0.100/ShareDemo -U 使用者名稱%密碼
// 也可以一句話登入成功後,直接執行命令,然後自動退出
smbclient //192.168.0.100/ShareDemo -U 使用者名稱%密碼 -c "put <filename>" // 上傳檔案
smbclient //192.168.0.100/ShareDemo -U 使用者名稱%密碼 -c "get <filename> [localname]" // 下載檔案
2.3 MAC 連線 SMB 共享資料夾
- Finder右鍵 -> 連線伺服器…;
- 伺服器地址輸入:
smb://192.168.0.100
或smb://192.168.0.100/ShareDemo
; - 選擇“註冊使用者”,輸入 samba 配置的 使用者名稱 和 密碼,點選“連線”;
- 在列出的共享資料夾列表中選擇要訪問的資料夾。