Samba是在Linux及Unix上實現SMB(Server Message Block)協議的一個免費軟件,由服務器及客戶端程序構成。
安裝samba
在ubunt下安裝命令是apt install samba
而在sentos或者redhat下安裝命令應該是yum install ubunt
。如果ubunt下沒有安裝samba,我們輸入apt install samba
回車,出現提示,按y確認即可。
配置samba
安裝好了之后,就可以進行配置了。
創建共享的文件夾
- 輸入
mkdir -p /home/share
創建文件夾。
2.輸入chmod 777 /home/share
給該目錄下用戶寫權限。
配置samba服務
一般來說,Samba服務器安裝完畢,會生成配置文件目錄/etc/samba和其它一些samba可執行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的啟動/關閉文件。
在進行修改配置文件之前,一個好的建議就是先進行備份。輸入下面的代碼
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
利用vim
編輯smb.conf文件,如果沒有提示vim沒有安裝的話,可以先安裝vim。輸入如下:
apt install vim
然后編輯smb.conf的配置文件,輸入下面的命令;
vim /etc/samba/smb.conf
添加下面的代碼:
security = user
(ps,某些版本的ubunt不能設置為share,設置為user則為需要賬號密碼登錄。share則代碼允許匿名登錄).
在文件末尾添加如下的配置代碼:
[share]
comment = this is linux share directory
path = /home/samba/share
available = yes
browseable = yes
public = yes
writable = yes
退出保存即可。
測試訪問samba服務器
在ubunt下,輸入ifconfig
查看ubunt的ip地址。
啟動samba服務器:
service smbd start
或者/etc/init.d/smbd start
在window下,按win+r 運行\\\192.168.146.128
確認。
回車后出現要輸入密碼和賬號的提示框即代碼smab服務器已經可以訪問了。輸入正確的賬戶密碼后即可訪問分享的文件夾及里面的內容。
訪問出錯及解決方案
如果window下提示訪問出錯的話,可能是防火墻被擋了。最簡單的方法就是直接關閉防火墻,輸入下面命令;
ufw status
查看當前防火墻的運行狀態
ufw disable
關閉防火墻。
然后在去試試。
關于更多的ufw命令可以參考鏈接
簡單的命令如下:
sudo ufw allow|deny [service]
打開或關閉某個端口,例如:
sudo ufw allow smtp 允許所有的外部IP訪問本機的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允許所有的外部IP訪問本機的22/tcp (ssh)端口
sudo ufw allow 53 允許外部訪問53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允許此IP訪問所有的本機端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部訪問smtp服務
sudo ufw delete allow smtp 刪除上面建立的某條規則
添加用戶賬號
創建用戶賬號,并添加密碼
useradd fred
passwd fred
為該用戶常見共享目錄:
mkdir /home/samba/fred
并設置該文件夾的所有權為fred用戶所有。
chown fred.fred /home/samba/fred/
為賬戶添加sambar服務密碼,這個密碼單獨于用戶密碼,可以與其不同。
smbpasswd -a fred
最后在/etc/samba/smb.conf
添加如下的代碼進行控制。
[fredsdir]
comment = fred's service
path = /home/samba/fred
valid users = fred
public = no
writable = yes
最后,重啟服務即可。
/etc/init.d/smbd restart
測試,在運行框中輸入:
\\192.168.146.128\fredsdir
提示要輸入密碼,直接輸入fred和你為其添加的samba密碼,注意不是fred的賬號密碼。到此,搞定收工。
注意,在windws下有一個連接的緩存機制,當我們鏈接異常的時候,可以使用下面的代碼:
net use * /delete /y
來斷開連接。
至此,unbunt下的samba服務搭建基本介紹完畢。
至于red hat和Sentos下的samba搭建可以參考下面的鏈接: