1. 程式人生 > >samba系列問題之分析解決過程

samba系列問題之分析解決過程

      回來定位問題,samba原始碼檔案太多,找到auth目錄及其他相關目錄下的可疑許可權驗證檔案,依次加列印,經過多次測試發現在函式password_ok處總是密碼驗證失敗導致mac系統無法登入,而win7卻正常通過密碼驗證。接著去了解samba相容的LanManager和Windows NT口令加密相關知識,瞭解samba本身的密碼驗證原理。(插述:client端連線server時首先會進行一個簡單的協商互動,server會產生一個隨機值返回給client;client接著用密碼的雜湊口令值作一些處理形成金鑰,對server返回的隨機值進行加密,再發送到server端,server端用本地儲存的雜湊口令值和隨機值作同樣的計算,將結果和client傳送的響應值比較,此即為許可權驗證過程)發現mac系統訪問輸入密碼時,碰到字母一律輸入大寫居然能驗證通過,可惜還是沒找到原因。
    抓包比對分析,mac通過samba訪問專案中的程式碼伺服器都能正常工作。如何快速方便抓mac的包呢,將pc和mac機器一起連到交換機,再從交換機連線到開發板或執行samba的程式碼伺服器。分析訪問板子和伺服器的資料包,基本也差不多,再細看,有個很重要的mode引數不一樣,即許可權控制模式security mode。 問題2、3———     於是將專案中的模式改為user模式進行測試,發現windows和mac都無法連線,跟蹤程式碼發現程序中有一處程式碼系統呼叫函式調研了非法字串導致程序異常。新增判斷程式碼後繼續測試,windows和mac都能正常連線,但是沒有了許可權控制,即無需使用者名稱和密碼就可以訪問所有的目錄,解決當前問題卻又出現了新問題,總歸有了一些進展,思路方向也大體明朗起來。
又回到許可權控制問題,繼續抓包加列印跟蹤程式碼並分析,在許可權相關檔案中加了許可權控制程式碼,判斷是否訪問對應的目錄,不是就終止並返回對應資料包資訊,windows和mac測試有效果。但是,考驗人的事情總是不會那麼一帆風順,許可權控制問題解決好了,又出現新問題,如果在mac中訪問了無許可權的目錄,會沒有反應,還會導致也無法去訪問所有目錄,仍然繼續加抓包分析,發現正常時client端會受到NT_STATUS_NOT_FOUND的資料包,又在相關檔案中經過一番修改除錯,找到相應程式碼新增判斷是否是訪問有許可權目錄,不是就返回帶NT_STATUS_NOT_FOUND的資料包資訊,這回都OK了。
問題4
———
    mac在首先連線server時(即協商過程結束後彈出輸入使用者名稱和密碼視窗)會很慢差不多1、2分鐘,這個問題自從改成user模式後就一直存在,也最無頭緒。     依然是抓包對比分析,每次分析包的時候我都做了過濾只分析smb協議包,訪問專案伺服器的包和開發板的samba包都是一模一樣,還是沒頭緒。求助別人幫我分析,果然受到啟發,不要過濾smb協議包,對所有包進行分析,發現mac在做完協商之後會做一個AAAA(ipv6相關)dns查詢本機域名,server沒有迴應reply會重複的查詢多次,導致了速度很慢。繼續做驗證來確認這個結論,將開發板連到internet中,或將mac中dns地址設定為無效地址,再做client連線果然速度很快,基本可確認前面的結論。原來開始開發板沒有連線到internet,在本地查不到dns結果。於是修改dns模組相關程式碼,終於解決問題。 此類問題是典型的linux應用服務問題,解決過程會碰到很多的問題,不斷的進行抓包分析,確是不錯的經驗,值得總結。 附:samba客戶端與server端通過一系列命令請求相應來互動,實現相關協議 問題5———

Forthe problem that when multiple users connect to fileserver(SAMBA).

Toconnect successfully using a different user on the same client on Mac, use thefollowing methods.

Input following format string on Server Address field when connect to server.

smb://[email protected]

To connect successfully using a different user on the same client on windows, useone of the following methods.

Method1

Disconnectany existing mappings to this network share on the same client before anotheruser connect to samba.

Method2


在linux系統中mount -t cifs //192.168.10.85/test1 /var/test2 -osec=ntlmv2,domain=MYDOMAIN,username=test1,password=test1可以對映samba檔案共享

相關推薦

samba系列問題分析解決過程

      回來定位問題,samba原始碼檔案太多,找到auth目錄及其他相關目錄下的可疑許可權驗證檔案,依次加列印,經過多次測試發現在函式password_ok處總是密碼驗證失敗導致mac系統無法登入,而win7卻正常通過密碼驗證。接著去了解samba相容的LanManager和Windows NT口令加

UBOOT分析配置過程 make 100ask24x0_config

windows啟動和嵌入式系統啟動對比,bootloader的終極目的是啟動核心。 分析配置過程 make 100ask24x0_config 開啟頂層Makefile 我們在編譯uboot是執行 make 100ask24x0_config 100ask24x0_config : u

圖解系列JAVA執行過程

分享圖片 ava RoCE shadow ces 51cto mark mar oss 圖解系列之JAVA執行過程

UBOOT分析編譯過程 make

開啟Makefile 117行的config.mk就是前面配置過程中生成的config.mk ,裡面定義了ARCH CPU BOARD SOC 165行是頂層目錄中的config.mk,根據上面四個變數的值確定編譯器、編譯選項等 而在Makefile

basic_string記憶體洩露問題分析解決

   最近在工作中,寫一計算杆塔絕緣子中心點的GPS座標程式時,定義了一結構,裡面用到了string型別來儲存杆塔所屬線路號、杆塔號,杆塔模型名稱。程式碼如下:  1/* 2  @brief 杆塔資訊結構 3*/ 4typedef struct   _TOWER_INFO 5{ 6      

軟體測試系列軟體測試過程模型V,W,H,X等

在軟體開發的不斷實踐過程中,人們積累經驗教訓,預估未來發展,總結出了很多的開發模型,比較典型的開發模型有,邊做邊改模型,瀑布模型,快速原型模型、螺旋模型,增量模型,演化模型,噴泉模型,智慧模型,混合模型還有RAD模型以及最近比較流行的,基於網路的面向物件的模型——RUP(RationalUnifiedProc

springboot初級學習系列解決@Entity不能自動生成對應表問題(已解決

在實體類上加@Entity就會對應生成相應的表,可是有時卻怎麼也生不成解決方法:1、檢查啟動類是否配有:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoC

Django需求分析和model設計過程系列報錯解決方法

報錯一:django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_init 進入執行介面後,執行遷移時報錯: django.db.migrations.exce

Spring系列Spring框架和SpringAOP整合過程分析(十二)

轉載請註明出處:https://blog.csdn.net/zknxx/article/details/80808447 在這篇文章中我們接著上一篇的文章說。在上一篇文章中我們提到了getAdvicesAndAdvisorsForBean這個方法,這個方法的內

Spring系列Spring框架和SpringAOP整合過程分析(十)

轉載請註明出處:https://blog.csdn.net/zknxx/article/details/80724180 在開始這個系列之前大家先想一下我們是怎麼在專案中使用SpringAOP的(這裡的分析都是基於AspectJ註解的)。我們需要在我們的Spr

Spring系列AOP分析對通知方法的執行過程(九)

轉載請註明出處:https://blog.csdn.net/zknxx/article/details/80261327 我們在上一篇文章中說到了前置通知的方法呼叫AspectJMethodBeforeAdvice#before,在這個before方法中又呼叫

Spring系列AOP分析獲取Advice的過程(四)

我們在前面的文章中分析了從切面類中獲取Advisor的過程,我們最後建立的Advisor例項為:InstantiationModelAwarePointcutAdvisorImpl,它是一個Advisor和PointcutAdvisor的實現類,所以我們可以從這

R語言數據分析系列

r語 來看 tab barplot code 繪制 ber map lib R語言數據分析系列之五 —— by comaple.zhang 本節來討論一下R語言的基本圖形展示,先來看一張效果圖吧。 這是一張用R語言生成的,虛擬的wordcloud雲圖,詳細

ElasticStack系列十六 & ElasticSearch5.x index/create 和 update 源碼分析

elastics quest 流程圖 刪除 context pre brush 什麽 log 開篇   在ElasticSearch 系列十四中提到的問題即 ElasticStack系列之十四 & ElasticSearch5.x bulk update 中重復 i

算法分析| 系列4(解決遞推)

關系 height class pan 一個 bre series 循環 都是 在前一篇文章中,我們討論了循環的分析。許多算法本質上是遞歸的。當我們分析它們時,我們得到時間復雜度的遞歸關系。我們得到的運行時間是大小為n的輸入作為n的函數,以及較小大小的輸入的運行時間。例如在

nova創建虛擬機源碼分析系列七 傳入參數轉換成內部id

接口 函數 device 博文 nat build 消息 通過 rop 上一篇博文將nova創建虛機的流程推進到了/compute/api.py中的create()函數,接下來就繼續分析。 在分析之前簡單介紹nova組件源碼的架構。以conductor組件為例: 每個組件

nova創建虛擬機源碼分析系列八 compute創建虛機

alt 創建 put manager 信息 模塊 manage tor float /conductor/api.py _build_instance() /conductor/rpcapi.py _build_instance() 1 構造一些數據類型2 修改一些a

(轉)postfix瘋狂外發垃圾郵件分析解決

nbsp 被人 4.4.2 def mst conn 其中 post system 從進程中看到,好像是postfix有問題。我這postfix主要是用來給程序發達郵件用的,如報警,程序外發郵件等。平時postfix進程不會像現在這樣異常,這在postf主進程CPU占用高,

銳捷CCNA系列(二) Wireshark抓包分析Ping過程

銳捷 CCNA 銳捷實戰 銳捷CCNA 數通 實訓目的 初步了解Wireshark的使用。 能分析Ping過程。 實訓背景 PING(Packet Internet Groper, 因特網包探索器),用於測試網絡是否連通的程序,在Windows、Linux、Unix下都是標配程序,Pi

spring源碼分析初始化過程

源碼分析 true singleton 存在 factory 源碼 org 包含 eric 1.org.springframework.web.context.ContextLoaderListener 一個ServletContextListener,web容器啟動監聽器