系統平臺:SUSE Linix Enterprise Server 11 sp1
軟件平臺:Samba-3.5.10.tar.gz
簡述samba 原理linux
SMB通訊協議採用的是Client/Server架構,因此Samba軟件能夠分爲客戶端和服務器端兩部分。經過執行Samba客戶端程序,Linux主機即可以使用網絡上Windows主機所共享的資源;而在Linux主機上安裝Samba服務器,則可使Windows主機訪問Samba服務器共享的資源。ios
在TCP/IP上運行的NetBIOS稱爲NBT,
NetBIOS 名稱包含16 個字節。每一個名稱的前15個字節是用戶指定的,表示標識與網絡上單個用戶或計算機相關聯的某個資源的惟一名稱或者標識與網絡上的一組用戶或計算機相關聯的某個資源的組名。
每一個 NetBIOS名稱中的第16 個字符被 Microsoft NetBIOS 客戶用做名稱後輟,用來標識該名稱,並代表用該名稱在網絡上註冊的資源的有關信息。每一個NetBIOS名稱都配置成一個惟一的(專有的)名稱或組(非專有的)名。。
名字服務:名字登記和解析
會話服務:可靠的基於鏈接的通訊
數據包服務:不可靠的無鏈接通訊
netbios 節點配置:
nbtstat -n 可查看本地NETBIOS 名稱列表瀏覽器
samba應用化境:安全
用於NetBIOS網絡瀏覽服務器
用於NetBIOS名字服務網絡
於文件及打印機共享和其餘操做架構
身份驗證和權限設置app
SWATdom
samba服務器程序socket
smbd:提供對服務器中文件,打印資源的共享訪問
nmbd:提供基於netbios主機名稱的解析
安裝步驟:
1. tar -xzvf samba-3.5.10.tar.gz
2. cd samba-3.5.10
3. cd source3
4. ./autogen.sh
5. ./configure --/usr/local/samba --enable-socket-wrapper --enable-nss-wrapper
6. make
7. make test (可選)
8. make install
9. cp samba-3.5.10/examples/smb.conf.default /usr/local/samba/lib/smb.conf
作完以上步驟後,執行一個初步的簡單測試,以檢測samba是否安裝正常
10. /usr/local/samba/bin/testparm 如提示以下,則表示安裝成功
Loaded services file ok.
samba 常見全局配置項:
•
workgroup
設置服務器所在的工做組名稱,例如「
WORKGROUP」
(
Windows
主機默認工做組名)
•
server string
設置服務器的說明文字,用於描述
Samba
服務器
•
security
設置服務器的安全級別,可設爲如下
4
個值中的一個:
share
(可匿名訪問)
user
(需由本服務器驗證用戶名及密碼)
server
(由另外一臺服務器驗證用戶名及密碼)
domain
(由
Windows
域控制器驗證用戶名及密碼)
•
log file
設置
Samba
服務器的日誌文件,默認設置爲「
/
var
/log/samba/%m.log」
,表示日誌文件保存到
/
var
/log/samba/
目錄中,按每一個客戶機創建一個日誌文件,「
%m」
變量表示客戶端主機名或
IP
地址
max log size
設置日誌文件的最大容量,默認爲
50
,表示
50KB
(默認單位爲
KB
)
•server types:
Domain Controller
Domain Member Server
Standalone Server
samba 常見共享目錄配置項
•
comment
設置對應共享目錄的註釋、說明信息
•
path
設置對應共享目錄在服務器中的文件夾路徑
•
browseable
設置該共享目錄在「網上鄰居」中是否可見,設置爲
no
時至關於隱藏共享目錄
•
guest ok
設置共享目錄是否全部人均可以訪問,與
public
配置項做用相同
•
writable
設置該共享目錄是否可寫,與
read only
的做用相反
writable = yes 全部賬號可寫
writable = no 全部賬號禁寫
write list = username 設置特定用戶寫權限
write list = @groupname 設置特定組寫權限
valid users = username 設置審覈
valid users = @groupname
public = yes 容許匿名用戶
public = no 禁止匿名用戶
read only = yes 只讀
read only = no 讀寫
read list = username
read list = @groupname
readable = yes
samba 經常使用命令:
testparm :檢查smb.conf是否有語法錯誤
smbclient :爲Linux用戶提供Samba服務,相似於FTP方式
smbstatus :列出當前全部Samba鏈接狀態
smbpasswd :修改Samba用戶口令,增長Samba用戶
nmblookup :用於查詢主機的NetBIOS名,並將其映射爲IP地址
smbtree :列出當前網絡中可用的SMB服務
smbd :Samba服務守護進程,爲Samba用戶提供文件和打印機共享
nmbd :Samba守護進程,提供NetBIOS名字轉換服務
SWAT :容許使用瀏覽器編輯配置文件smb.conf
smbtar :對共享資源進行備份
samba啓動方式:
若是經過源代碼安裝的samba ,則啓動以下:
nmbd -D (先啓動)
smbd -D (後啓動)
要啓動兩個服務
samba映射賬號功能:
映射賬號是指用虛擬賬號映射samba賬號,即訪問的samba服務時候用虛擬賬號訪問,而實際上用的是samba賬號。
要使用映射功能須要在smb.conf 全局配置文件中增長一行以下:
username map = /etc/samba/smbusers
即開啓賬號映射功能
而後編輯smbusers文件
samba賬號名 = 虛擬賬號名
例如:若是samba賬號爲 smbuser01 ,虛擬賬號爲 vuser01 ,則以下:
smbuser01 = vuser01
samba特殊應用場景:
假若有個目錄aaa,要求對普通員工隱藏,對老闆能夠見,那麼能夠單獨對老闆作個配置文件。
在smb.conf 中全局添加一行:
config file = /etc/samba/smb.conf.%U
%U 表明 須要特殊設置的賬號
複製一份smb.conf 爲 smb.conf.%U ,將smb.conf.%U 文件中對應的aaa 目錄配置項browseable = yes 既可!
samba客戶端應用:
若是是linux客戶端,
mount 掛載smbfs的用法;
mount -t smbfs -o codepage=cp936,username=用戶名,password=密碼 ,-l //ip地址/共享文件夾名 掛載點
mount -t smbfs -o codepage=cp936,username=用戶名,password=密碼 ,-l //計算機名/共享文件夾名 掛載點
smbmount的用法:
smbmount -o username=用戶名,password=密碼 , -l //ip地址或計算機名/共享文件夾名 掛載點
smbmount //ip地址或計算機名/共享文件夾名 掛載點
samba亂碼問題:
1.若是linux locale是zh_CN.UTF-8,在smb.conf中添加:
display charset = UTF-8
unix charset = UTF-8
dos charset = UTF-8
2.若是linux locale是zh_CN.GBK或zh_CN.gb2312,在smb.conf中添加:
display charset = cp936
unix charset = cp936
dos charset = cp936
端口設置:smbd所佔用的端口是139和445