samba服務簡析

samba程序簡介:
在介紹samba程序之前得先簡單瞭解幾款協議:
NetBIOS協議:NetBIOS協議(Network Basic Input/Output System),簡單的理解,這個協議可以給局域網內的每臺計算機賦予一個新的統一規則的名字---NetBIOS名,並且將這個名字解析爲IP地址,實現信息通訊,主要作用還是局域網內部的消息通信和資源共享。

SMB協議:SMB協議(Server Message Block)是由微軟開發的一種軟件程序級的網絡傳輸協議,基於NetBIOS,主要功用是使得一個網絡上的機器共享計算機文件、打印機、串行端口和通訊等資源,使用C/S架構運行,主要作用在Windows平臺。

CIFS協議:CIFS協議是公共的或開放的SMB協議版本,微軟希望將這個而協議擴展到Internet上,成爲Internet上計算機之間相互共享數據的一種標準,因此它將原有的SMB協議進行整理,重新命名爲CIFS(Common Internet File System)。

samba是Linux和Unix平臺的一款實現了SMB協議的軟件,可以使得windows平臺的主機也可以訪問Linux和Unix平臺主機共享出來的資源。

samba服務監聽的協議端口有:
UDP的137-NetBIOS名字服務;nmbd
UDP的138-NetBIOS數據報服務
TCP的139-文件和打印共享;smbd
TCP的445-NetBIOS在Windows2000及以後版本使用此端口

samba程序的安裝
如果系統沒有自帶samba程序,可配置yum源後,以下指令安裝
[root@localhost ~]# yum -y install samba
安裝samba程序時會安裝四個程序包:
samba-client;samba服務作爲客戶端,連接其他服務器共享資源時用到此程序
samba-common;samba服務的公用包
samba-winbind;使服務器能夠加入到windows的AD域中
samba-winbind-client;
samba服務
samba程序有兩個服務腳本:
/etc/rc.d/init.d/nmb 啓動nmb服務
/etc/rc.d/init.d/smb 啓動smb服務
samba的主程序文件:
/usr/sbin/nmbd
/usr/sbin/smbd
samba的主配置文件:
/etc/samba/smb.conf
啓動samba服務:
service nmb start
service smb start
可使用ss -tunl命令查看137和138端口都處於監聽狀態,說明samba服務啓動成功

訪問Windows平臺的共享資源
當samba程序安裝完成後就已經可以訪問windows平臺的共享資源:
使用smbclient命令
smbclient -L HOST -U USENAME
例:[root@localhost ~]# smbclient -L 172.16.20.2 -U nice/22

獲取到共享信息後:
smbclient //HOST/shared_name -U USERNAME
例:smbclient //172.16.20.2/share/ -U nice/22

對於Windows平臺的共享資源還可以使用掛載的方式訪問:
mount -t cifs //HOST/shared_name /mount_point -o username="USERNAME",password="PASSWORD"
也可以不使用密碼選項,直接回車,然後根據提示輸入密碼,提高安全性
例:

[root@localhost ~]# mount -t cifs //172.16.20.2/share/ /mnt -o username="nice\22"
Enter=[NICE] OS=[Windows 10 Enterprise 14393] Server=[Windows 10 Enterprise 6.3]

Windows平臺訪問Linux共享資源配製

[root@localhost ~]# vim /etc/samba/smb.conf
workgroup = WORKGROUP

由於windows主機默認屬於WORKGROUP工作組,而Linux的smb.conf配製文件中的設定是MyGroup,工作組不一樣,是無法訪問到共享資源的,所以需要修改爲WORKGROUP
且訪問samba服務時需要用到用戶名密碼,這裏的用戶就是系統用戶,存儲在/etc/passwd中,而密碼使用samba服務的自有密碼文件,所以首先要創建好系統用戶,然後將系統用戶加入到samba服務的密碼文件中。
這裏需要使用到一個命令:smbpasswd
smbpasswd
選項:
-a USERNAME:將指定的系統用戶添加到samba密碼文件中。
-d USERNMAE:將指定的已經存在samba密碼文件中的用戶禁用。
-e USERNAME:將指定的已經存在samba密碼文件中的被禁用的用戶啓用。
-x USERNAME:將指定的已經存在samba密碼文件中的用戶刪除。
例:

[root@localhost ~]# useradd user1
[root@localhost ~]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
[root@localhost ~]# 

然後在windows主機上訪問網上鄰居中的Linux主機了,或者直接使用UNC路徑:\IP
例:\172.16.20.242
需要使用用戶名和密碼登陸,用戶名和密碼即剛剛加入到samba密碼文件中的
使用user1用戶登陸時,默認訪問的就是user1用戶的家目錄,以此類推

需要注意的是:如果使用Linux主機訪問Linux主機的共享資源,同樣需要在同一個工作組中。

配置文件簡析
/etc/samba/smb.conf
在此配置文件中,“#”註釋的是解釋信息,“;”註釋的是可以啓用的指令或選項
samba服務簡析
workgroup:工作組名設定
server string:samba服務器描述
netbios name:設置netbios名
interfaces:samba服務所監聽的地址
hosts allow:白名單,僅允許來自哪些

samba服務簡析
log file:每個客戶端訪問samba服務時都會生成客戶端地址爲後綴的日誌文件。
max log size:且每個日誌文件超過50KB時,進會進行日誌滾動。

samba服務簡析

security = user:表示訪問samba服務時必須使用用戶名和密碼進行認證
passdb backend = tdbsam:samba用戶的密碼使用tdbsam格式存放

--Domain Members Options--
加入到windows域後的設置
...
...

samba服務簡析
公用的共享配置
[home]
comment:註釋信息
browseable = {yes|no}:訪問者非此家目錄的屬主或屬組時,是否允許訪問
writeable = {yes|no}:是否可寫,用戶通過samba服務登陸訪問此目錄後是否擁有寫權限
valid users = %s:有效的用戶,%S爲宏,表示爲它自己
[printers]中的配置很少用到,這裏不作詳細講解

特定共享的設定:
語法:
[shared_name]
path = /path/to/share_directory 共享路徑。
comment = COMMENT STRING 註釋。
guest ok = {yes|no} 是否允許來賓賬號訪問。
public = {yes|no} 是否公開。
writeable = {yes|no} 是否公開。
read only = {yes|no} ,yes表示只讀,no表示可寫。
browseable = {yes|no} 該參數是指出共享對於正在瀏覽的客戶是否可見,或者共享通過使用UNC(通用命名約定)才能訪問。
例如要訪問共享名 public ,而其瀏覽功能(browseable)已經被關閉(no)
則它不會出現在瀏覽列表中(即在瀏覽器中不可見)。
write list = +GROUP_NAME 表示組內用戶都可寫。

配置文件修改完成後,需要使用測試配置文件是否有語法錯誤:
testparm命令不僅可以測試配置文件語法錯誤,還能顯示最終生效的配置

值得注意的是:共享權限和文件系統權限需要一致,否則會導致訪問不到;如果有特殊用戶需要訪問共享目錄,不建議直接修改屬主或屬組權限,建議使用facl。

samba的圖形用戶界面
samba的圖形用戶界面是由samba-swat包提供,需要額外安裝
samba的圖形用戶界面基於web服務提供圖形界面,且是自己提供web服務,並非依賴於httpd或Nginx,且服務通過xinetd(超級守護進程)代爲管理。
啓用圖形用戶界面
[root@localhost ~]# vim /etc/xinetd.d/swat
samba服務簡析
only_from選項用於指定可由哪些主機訪問swat頁面
修改only_from選項允許需要的主機訪問
修改disbale = no
保存配置文件後啓動xinetd服務
[root@localhost ~]# service xinetd start
在瀏覽器地址欄中輸入地址和端口:IP:901
例:
http://172.16.20.241:90
samba服務簡析
這裏彈窗提示需要輸入用戶名和密碼,直接使用操作系統的root用戶登陸即可
samba服務簡析

HOME爲主頁,裏面有各配置文件的詳細文檔。
GLOBALS爲全局信息
SHARES爲共享信息,裏面有已設置的共享的配置信息(從配置文件中讀取而來),可以在此處更改配置信息,更改後點擊Commit Changes保存更改,這樣會自動修改配置文件並重啓服務。需要注意的是:這裏會直接修改並覆蓋原有配置文件,如果配置不當,很可能會導致原有配置丟失,建議修改之前備份配置文件。
PRINTERS
WIZARD
STATUS爲服務信息,可以操作服務,啓動或停止或重啓,並顯示已連接的客戶端,以及對客戶端的一系列操作等等。
VIEW爲視圖信息,可以查看視圖的詳細配置參數。
PASSWORD爲密碼信息,可以在此處修改密碼,最初使用系統root用戶和密碼登陸,可以在此處修改,不使用系統root用戶。

主要是筆記整理,寫的比較潦草,如有遺漏錯誤和爭議之處,歡迎大家的批評指正和討論,謝謝。
還有些許地方不夠完整,繼續學習以後回來填坑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章