http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=138608&sid=c71434c8258d2be27ab1af7d6ea9d196
對與linux與win的共享來說,samba的簡單易用與打印共享是ftp無法取代的,這篇文章簡單介紹samba的基礎和一些
需要注意的問題,對與linux與linux共享,使用samba並不是明智的選擇,還有比smb更好的NFS(Network File System)只是NFS的安全問題比較突出
初次接觸samba,可能會因爲apt-get install samba默認安裝的配置文件(/etc/samba/smb.conf)苦惱,
因爲裏邊太亂了,其實大可不必去理會它,與其修改它不如我們自己重新建立
sudo mv /etc/samba/smb.conf /etc/samba/smb2.conf
sudo touch /etc/samba/smb.conf
上邊兩句意思是把原來的配置文件改名,然後從新建立smb.conf
新的開始,要比收拾一個爛攤子更加容易,下來我們簡單建立一個samba的配置框架
sudo vim /etc/samba/smb.conf
#smb.conf
[global]
[homes]
[printers]
[sharename]
這就是smb的框架,對的,你沒看錯,它就是smb.conf的骨架,下邊我們只要豐富骨架,配上血肉就是個漂亮的姑娘了,這裏需要講
解的是smb.conf文件是由3個標準節與若干個用戶自定義共享節組成
[global]節下定義全局的設置
[homes]節下定義用戶的目錄共享(比較特殊,後邊會講解)
[printers]節下定義有關打印參數
[sharename]可以有多個這種不同名字的節,意思是具體的定義共享那個目錄
下邊我們豐富下[global]節
在[global]節下有這些重要的參數
----------------------------------------------------------------------------------------------------------------
[global]
workgroup = smb #定義工作組的名稱,可以隨便寫,在win下會顯示出自己寫的工作組的名稱
server string = smb server #對服務器的描述,自己隨便寫,會在win下顯示
netbios name =mysmb #smb的netbios名,可以自己寫,但最好寫本機器的名字
client code page = 936 #客戶端的字符編碼
socket address=0.0.0.0 #smb監聽的ip,雙網卡最好寫上,不然會把端口開在兩個網卡上
security=share/user/server/domain #4中安全級別,我們只關心share/user兩個級別
#
share #用戶不需要帳號和密碼就可以登陸samba服務器
user #由samba服務器提供檢查帳號和口令
#
smb passwd file=/etc/samba/smbpasswd #這個非常重要
#
當security=user的時候,意味着smb必須自己提供帳號和密碼的檢查,這時候就必須配置smb passwd file=/etc/samba/smbpasswd
文件
默認是不建立smbpasswd文件的,需要自己建立,只要當使用sudo smbpasswd -a xxx命令時候,纔會在smbpasswd文件中出現自己定
義的用戶密碼,這在後邊會詳細講解
#
log file=/var/log.samba/%m.log #日誌文件,%m代表設置的netblos名
max log size=100 #日誌文件最大尺寸(KB)
deadtime=10 #客戶的超時時間,10分鐘無操作就斷開
keepalive=60 #60秒發送一次包,確認客戶端工作是否正常
max open files=1000 #同一客戶最多能打開的文件數目
socket options=TCP_NODELAY #這裏有三個選擇,我們只選擇TCP這個
-------------------------------------------------------------------------------------------------------------------
上邊就是[global]節下重要的一些參數,可以按自己需要選擇,完成這些,基本像個女人了,不過也太恐龍了吧,要臉蛋沒臉蛋,要
胸沒胸,要屁股沒屁股,基本算三無產品,殘念。。。。。
改造恐龍計劃正式開始。。。
[homes]節
--------------------------------------------------------
[homes]
comment =home directories #描述文字
browseable=no #不可以被瀏覽,(就是不能看到)
writable=yes #可以寫
valid users=%S #可以使用的用戶,%S代表當前服務名
create mode=0664 #創建文件時候的權限,用8進制的4位數表示權限
----------------------------------------------------------
上邊就是標準的[homes]節定義,這節比較特殊點,大家瞭解下,[homes]節存在的意義就是
當客戶機發出服務請求時,在smb.conf文件的其它部分查找特定內容的服務。如果沒有發現這些服務,並且提供了homes段時,那麼就搜索密 碼文件/etc/samba/smbpasswd得到用戶的Home目錄。通過Homes段,Samba可以得到用戶的Home目錄並使之共享
[printers]有關打印的節,這節比較複雜,主要是牽扯的有點多,相信新手不太關心這個,留後邊說
[sharename]節,這節是我自己起的名字,前邊三節都是標準節,名字是固定的,不可重複的
這節是具體定義共享那些目錄,與有關目錄的控制權限
如過想共享/tmp/samba目錄,就把[sharename]換成[samba],可以自己起名字,在win下顯示的文件夾就是[samba]節的名字
如果還想同時共享/home/ftp目錄,就在[samba]節後邊重新寫一個節[ftp]
-------------------------------------------------------------
[samba]
comment=samba #描述
path=/tmp/samba #共享路徑
writable=yes #是否可寫
browseable=yes #是否可以看到
available=yes #是否可用
read only=yes #是否只可讀
public=yes #是否允許guest用戶訪問
guest account=xxx #guest用戶使用的帳號
guest ok =yes #允許使用guest
guest only=yes #是否只允許guest
read list =xxx,@xxx #可以讀的用戶或組列表
write list=xxx,@xxx #可以寫的用戶或組列表
valid users=xxx,@xxx #可以使用服務的用戶或組列表
invalid users=xxx,@xxx #不可以使用服務的用戶或組列表
----------------------------------------------------------
上邊有些參數是衝突的,這裏只是羅列出來,提供參考的
到這裏除了打印以外,基本上骨架和血肉的介紹已經結束了,下邊說下,配置中經常會碰到的問題
服務端問題:
------------------------
一: 配置不需要帳號密碼的smb共享
把全局參數中有關安全等級的參數security=share就可以實現不需要帳戶密碼就可以使用
當然,也需要在具體的共享文件中不要加valid users參數,不然在訪問這個目錄時候就需要帳號密碼
二:配置爲需要帳號密碼的smb共享
修改sercurity=user後還需要smb passwd file=/etc/samba/smbpasswd參數,然後在建立smbpasswd文件
先添加一個主目錄爲/home/ftp的不可登陸用戶tom可以使用命令
sudo useradd -s /sbin/nologin -d /home/ftp/ tom
然後設定密碼, sudo passwd tom
再設定smb專用密碼, sudo smbpasswd -a tom
做完上邊的步驟,就會在/etc/samba/smbpasswd中看到添加的用戶,下邊,就可以使用tom用戶登陸了
注意,必須使用 sudo smbpasswd -a tom 後用戶纔會被添加到smbpasswd中,不然不可以使用
三:共享目錄可寫,與不能被刪除
當在共享節下設置writable=yes 後,還必須讓共享的目錄有被寫入的權限,才能寫入和刪除,
大多情況只能寫入而不可以被刪除,就需要自己設置目錄的特殊權限,sticky-bit權限,具體在論壇有個精華帖介紹
客戶端問題:
--------------------------
一:不能使用網上鄰居
建議把防火牆關掉試下,然後檢查tcp-ip協議中,ip和服務器的ip是否在一個網段內,ip協議中高級裏是否開啓把netbios協議綁定在tcp-ip協議上
二:網上鄰居記錄用戶密碼問題
在開始-運行中輸入 net use /d * 按提示輸入yes
就可以清除記錄