1
相信很多 Linux 玩家(用戶), 都有這樣的需求, 那就是將伺服器上的某個資料夾空間分享出來,讓區域網路內的用戶可以上傳下載與讀取, 那麼除了透過美麗好用的圖形化介面進行分享資料夾的設定之外,我們來看看系統底層的指令式設定是如何做到的. 這邊我們就以 ubuntu 的環境來做demo.
安裝相關套件
sudo apt -y install samba samba-client samba-common
其中
samba-client, 這是用來讓你的 linux 成為別人的 client 去連到別人分享的資料匣
samba-common, 這個套件則主要提供了 samba 的主要設定檔 (smb.conf), 語法檢驗的測試程式
== 接下來要設定使用該服務的帳號 ==
設定不須登入/操作 Shell 的帳號 smbuser(範例), 這邊會問你密碼, 我們使用 "smbuser"
sudo adduser smbshare --shell /bin/false
這邊是設定給 samba 用的帳號所屬密碼, 跟上一行的不一樣喔!! 要特別注意, 帳號一定是一樣, 但是密碼可以不一樣.
sudo smbpasswd -a smbshare
如果要移除使用者, 除了要移除 samba 用的帳號之外, 系統帳號也一並刪除比較保險喔!
smbpasswd -x smbshare
userdel -r smbshare
修改設定檔
sudo nano /etc/samba/smb.conf
在檔尾加入以下設定內容()
[share]
path = /home/smbuser # 這個是要分享的資料夾路徑, 記得資料匣屬性要讓使用者帳號可以讀寫
available = yes
valid users = smbuser # 這個是可以使用這個分享資料夾的使用者,要具有 path 所指定的路徑的權限才行
read only = no
browseable = yes
public = yes
writable = yes
重啟 Samba Server
service smbd restart
接下來我們用 linux 的環境與 windows 的環境當作 client 來連到 samba server 的資料匣
== 使用 linux 連結 Samba server ==
建立一個要掛在的路徑
sudo mkdir -p /mnt/share
進行連線設定
sudo mount -t cifs //{Samba Server IP}/share /mnt/share -o username=smbuser,password=smbuser
如果不用了, 可以卸載
umount /mnt/share
== 使用 windows 連結 Samba server ==
\\{Samba Server IP}\share
接下來他會跳出要你輸入帳號密碼的介面, 請輸入 smbuser / smbuser 就可以登入看到資料匣了!
!!重要資訊!! 如果你的 Linux Samba Server 是採用 VM 架設在 Windows OS 之下, 因為 Windows OS 本身限制問題, 無法給予 445 通行!! 因此無法進行分享資料匣的連線, 請特別注意!!! (Linux samba port: UDP 137, 138 TCP 139, Windows 網路芳鄰 port: 445)