NFS僅能讓Unix/linux之間共享數據,CIFS僅能讓Win之間溝通php
SAMBA:
跨平臺的文件共享服務
主要用於局域網內linux
SAMBA常見的應用: 共享文件與打印機服務 能夠提供用戶登陸SAMBA主機時的身份認證,以提供不一樣身份用戶的個別數據 能夠進行Windows網絡上的主機名解析(NetBIOS Name) 能夠進行設備的共享(例如Zip、CD-ROM) SAMBA是架構在NetBIOS這個通訊協議上面開發出來的 NetBIOS 由IBM開發 NetBIOS: Windows基於於主機實現互相通訊的機制; 15個字符 NetBIOS沒法跨路由通訊 經過NetBIOS over TCP/IP 能夠實現跨路由使用SAMBA服務器所提供的功能 NetBIOS Name 因爲NetBIOS主要定義在局域網內,所以並無使用TCP/IP之類的傳輸協議,也就不須要IP的設置。 倆臺主機間的通訊,經過主機在NetBIOS協議中使用NetBIOS Name,每臺主機使用不一樣的NetBIOS 文件數據在不一樣的NetBIOS Name之間溝通。 SAMBA的主要服務: nmbd: 管理工做組,NetBIOS Name 等的解析,使用UDP 137,138端口,向客戶端提供構造在IP之上的NetBios名字服務的NetBios名字服務器 smbd:管理SAMBA主機共享的目錄,提供文件共享和打印服務的服務器進程。使用TCP 139和445端口。使用smb或cifs協議 向客戶提供文件共享空間和打印服務。 SAMBA的常見局域網鏈接方式: Peer/Peer對等模式(Workgroup model,對等模式) 每臺計算機都可以獨立運做,不受他人影響。 適用於小型的網絡,或者是不須要經常進行文件數據共享的網絡環境,或者每一個用戶都擁有該計算機的擁有權。 Domain model(主控模式) 將全部計算機的帳號和密碼都放置在一臺主控計算機(PDC)上面,任何人使用任何計算機時,都須要經過PDC服務器的辨識後,纔給以適當的權限。 SAMBA所須要的軟件: samba:samba服務端程序 samba-client:samba的Linux客戶端 samba-common:服務端與客戶端都會使用到的數據
SAMBA 用戶帳號必需要存在於Linux系統當中(/etc/passwd),可是SAMBA的密碼與linux的密碼文件並不相同
samba用戶:
帳號:都是系統用戶, /etc/passwd
密碼:samba服務自有密碼文件, ios
將系統用戶添加爲samba的命令:pdbedit pdbedit -u :指定用戶名 -a :添加一個可以使用的SAMBA帳號,帳號須要在/etc/passwd 內存在 -r :修改一個帳號的相關信息 -x :刪除一個SAMBA帳號 -L :列出目前在數據庫當中的帳號與UID等相關信息 -v :與 -L 搭配使用列出更詳細的信息 修改SAMBA帳號密碼 smbpasswd: SAMBA的配置文件: /etc/samba/smb.conf #samba主配置文件 /etc/sysconfig/samba #提供啓動smbd,nmbd時,還想要加入的相關參數。 /var/lib/samba/private/{passdb.tdb,secrets.tdb} 管理samba的用戶帳號/密碼時,會用到的數據庫文件 /usr/share/doc/samba-<版本>:samba技術手冊 /usr/bin/{smbd,nmbd} #samba服務端服務程序 /usr/bin/{tdbdump,tdbtool} #samba3.0之後的版本中,用戶的帳號密碼參數已經使用數據庫管理,samba使用的數據庫爲TDB。 tdbdump能夠查看數據庫的內容,tdbtool能夠進入數據庫手動修改帳戶及密碼參數。(需安裝tdb-tools) /usr/bin/smbstatus #列出當前samba的鏈接情況,包括PID,共享的資源,使用的用戶來源等。 /usr/bin/pdbedit #管理samba用戶數據 /usr/bin/testparm #檢查主配置文件smb.conf的語法錯誤 /usr/bin/smbclient #查看其餘計算機共享出來的目錄與設備,或在本身的samba主機上,查看samba是否設置成功 /usr/bin/nmblookup #查出NetBios Name /usr/bin/smbtree #查出工做組與計算機名稱的樹形目錄分佈圖 SAMBA的主配置文件;(#號與;都是註釋文件) /etc/samba/smb.conf 主機信息的配置: [global] workgroup = MYGROUP #工做組的名稱,共享文件客戶端服務端工做組要相同 netbios name = MYSERVER #主機的NetBIOS Name名稱,每部主機均不一樣 server string = Samba Server Version %v #主機的簡易說明 display charset=xx 本身服務器上面的顯示編碼 unix charset=xx 在Linux服務器上所使用的編碼 dos charset=xx Windows客戶端的編碼 host allow=IP 訪問權限設定,指定IP的主機能夠訪問SAMBA服務 關於語言的設定可參考: http://phorum.vbird.org/viewtopic.php?t=22001 log file=xx 日誌文件的存儲文件 max log size=xx 日誌文件最大多大 security=xxx share,user,domain 三選一 share:共享的數據不須要密碼,你們都可使用(安全性差) user:使用samba服務器自己的密碼數據庫 domain:使用外部服務器的密碼,也就是samba時客戶端的意思,須要password server=IP 的設置值 encrypt passwords=YES 密碼是否加密 passdb backend=數據庫格式 共享信息的配置: [共享名稱] path=xxx 實際共享的目錄 comment:共享目錄的說明 guest ok=yes 容許以缺省的guest用戶權限進行訪問(缺省權限爲guest account 設置的權限,缺省設置爲nobody,編譯時指定) browseable:是否讓全部用戶看到這個目錄 writable:是否能夠寫入 write list=@組 能夠進入此資源的特定用戶組 create mode=xx 建立文件的相關權限 directory mode=xx 建立目錄的權限 read only = yes 是否只讀 檢查配置文件語法正確: testparm 命令 -v:查閱完整的參數設置,連同默認值也會顯示出來 smbclient命令: 查看其餘計算機共享出來的目錄與設備,或在本身的samba主機上,查看samba是否設置成功 smbclient -L [//主機或IP] [-U 用戶帳號] -L:僅查詢後面鏈接的主機所提供的共享資源目錄 -U:以指定的帳號來嘗試訪問該主機的可用資源 基於掛載的方式訪問: mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD