• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            tqsheng

            go.....
            隨筆 - 366, 文章 - 18, 評論 - 101, 引用 - 0
            數據加載中……

            Compare files with Total Commander

             

            Compare files with Total Commander

            This article shows how to use our file compare tool with Total Commander - very nice 2-panels file manager.

            Total Commander (www.ghisler.com, ex. Windows Commander) is a popupar two panels file manager. If you are still using Explorer for your routine tasks, you should definitely give it a try. TC has built-in file compare tool, but it is limited to standard features and does not allow merging.

            Using new features of TC 7

            Among new features of v7 in TotalCommander we can find an ability to define external compare utility, which TC will use instead of internal tool. It gives us 2 main advantages:

            • CompareIt will be used from internal Folders comparison tool (useful if you are not using our Synchronize It!)
            • Now we can quickly compare 2 files, selected in same pane!
            • Compare It can be used to compare files within archives
            Using this nice feature requires a bit of manual work:
            1. Find wincmd.ini file - it's location is listed in Help>About
            2. Open it in any editor and find [Configuration] section
            3. Add this line under found section:
              CompareTool=c:\Program Files\Compare It!\wincmp3.exe
              Of course, change CompareIt path to what you have in your system
            4. Save file and restart Total Commander.
            5. To ensure that everything is working properly, select 2 files in same pane and choose File>CompareByContent command from menu. CompareIt should open with your selected files.

            Comparing selected files

            Compare It! on button bar
            We will use button bar feature of TC - basically this is toolbar with shortcuts, used to quickly start applications with parameters from current panes.

            To add shortcut to Compare It!, simply drag it and drop to the button bar. New button will appear, you can try to start application by clicking it.

            Now we have to change parameters in order to compare files currently selected in left and right panes. Click our new shortcut with right mouse button and choose "Change..." to access button properties dialog.
            We are interested in Parameters field, fill it as shown: %P%N %T%M
            Quite a lot of variables can be used in parameters. But we will use only these (excerpt from TC' help file):
            • %P causes the source path to be inserted into the command line, including a backslash (\) at the end;
            • %N places the filename under the cursor into the command line;
            • %T inserts the current target path;
            • %M places the current filename in the target directory into the command line.
            So %P%N becomes full path of current file in active pane, %T%M - full path of selected file in second pane.

            Tip: Since Compare It! supports zip archives, you can also use created button to compare file with it's zipped version. To do this, select file in one pane, and archive in second one. Note that file to compare can reside deep in folders within archive, Compare It! will find it anyway.

            Using FileName Auto-Complete feature

            But you can get even more by using unique Compare It! feature, designed especially for this case. Add to button bar another shortcut to Compare It!, and change parameters to these: %P%N %T
            To use this button you don't have to select required file in second pane - just select file in active pane, and change your second pane to show folder were another file is located. This single button will save you several minutes every time you need to compare files with same name.

            Tip: Compare It! includes several different icons, which could be used for different shortcuts on button bar.

            posted @ 2011-12-14 17:58 tqsheng 閱讀(364) | 評論 (0)編輯 收藏

            Total commander and Winmerge

            Total commander and Winmerge

            In order to use Winmerge as comparision tool add following line to wincmd.ini:

            CompareTool="d:\Program Files\WinMerge\WinMerge.exe"

            posted @ 2011-12-14 16:22 tqsheng 閱讀(450) | 評論 (0)編輯 收藏

            ClearCase和TotalCommander結合使用

            ClearCase和TotalCommander結合使用
            * 與TotalCommander結合使用
            ** 顯示文件
            TotalCommander可以顯示clearcase上的文件,只需要切換到相應的目錄下即可。
            每個view有幾個必須的屬性:
            1. View Tag:表示view的名字。
            2. Drive Letter:表示對應的磁盤。
            例如,可以這么新建或設置一個view:
            View Tag:view_X
            Drive Letter:X
            
            TotalCommander切換到X盤即可以看到該view對應的文件。
            cmd下:cleartool catcs -tag view_X
            可以查看該view的spec。
            
            ** 基本操作
            本來TotalCommander或者資源管理器下都可以通過右鍵調出clearcase的菜單操
            作。但可能是由于需要網絡連接,每次調出右鍵菜單都很慢。而調用
            TotalCommander的自定義開始菜單則非常快。通過設置自定義開始菜單來實現基
            本的check out, check in等操作。
            
            *** 無參數
            列出check out的文件,默認參數是當前路徑“.“
            cleartool lsco -g
            即在X盤的某個目錄下調用上面的指令可以得到列表對話框。
            命令添加到TotalCommander的自定義開始菜單,配置上快捷鍵即可。
            
            *** 單個文件參數
            顯示一個文件的分支樹圖,或者比較一個文件和之前版本的差異,只有一個文件
            參數。
            cleartool lsvtree -g
            cleartool diff -pre -g
            將兩個命令分別添加到自定義開始菜單。
            參數項為:%P%N
            表示當前選定的當個文件的全路徑。
            
            *** 多個文件參數
            check out,check in,undo check out等指令有時需要同時操作多個文件。
            TotalCommander可以支持參數:%L
            是將選擇的多個文件寫到一個臨時文件中,每行一個文件,并將該臨時文件作為
            參數傳遞。這和命令行要求的把多個文件名用空格分開依次排列在命令之后作為
            參數的要求有區別。
            
            沒想到好的方法,寫了個c程序來實現這個轉化:
            #include <stdio.h>
            #define SIZE 1024
            
            int
            main(int argc, char ** argv)
            {
                 FILE *in;
                 char buffer[SIZE];
                 char exe[SIZE*10];
                 char param[SIZE*9] = " ";
                 if (argc != 3)
                 {
                     printf("param error!");
                     exit(1);
                 }
                 strcpy(exe, argv[1]);
                 in = fopen(argv[2], "r");
                 while( fgets(buffer, SIZE, in))
                 {
                     buffer[strlen(buffer) - 1] = ' ';    //change '\n' to ' '
                     strcat(param, buffer);
                 }
                 strcat(exe, param);
                 system(exe);
                 return 0;
            }
            
            gcc -o prog.exe prog.c
            生成執行文件prog.exe用來實現:
            用第一個參數作為命令,第二個參數作為參數列表文件的文件名。將參數列表文
            件讀出用空格相隔每行,作為命令的參數。最后執行。
            
            TotalCommander自定義開始菜單里面的配置:
            命令:e:\bin\prog.exe "cleartool co"
            參數:%L
            命令:e:\bin\prog.exe "cleartool ci"
            參數:%L
            命令:e:\bin\prog.exe "cleartool unco"
            參數:%L
            
            ** 更換view spec
            利用命令:
            cleartool setcs -tag view_x view_file_name.txt
            可以用view_file_name.txt中的view spec修改當前的view_x。
            也可以通過TotalCommander的自定義菜單搞定。
            
            

            posted @ 2011-12-14 16:20 tqsheng 閱讀(384) | 評論 (0)編輯 收藏

            正保多媒體數據庫

            http://www.lib.whu.edu.cn/dc/viewdc.asp?id=622

            posted @ 2011-11-22 21:48 tqsheng 閱讀(161) | 評論 (0)編輯 收藏

            http://blog.csdn.net/benny5609/

            http://blog.csdn.net/benny5609/

            posted @ 2011-11-22 12:36 tqsheng 閱讀(130) | 評論 (0)編輯 收藏

            c#

            Visual C# 2005程序開發與界面設計秘訣(隨書附贈DVD)


          1. 作者: 章立民研究室    [作譯者介紹]
          2. 叢書名: 微軟新技術系列叢書
          3.  

             

            最新Linux/UNIX指令范例速查手冊(第2版)

             

          4. 作者: 豐士昌(中國臺灣)   
          5. 出版社:科學出版社
          6. ISBN:9787030308184

          7.  

            C# 4.0圖解教程(china-pub首發)


            C#與.NET 3.5高級程序設計(第4版)


            C#圖解教程(圖靈程序設計叢書,微軟技術系列) 


            框架設計(第2版):CLR Via C#(微軟技術叢書) 


            Accelerated C#2008:C#捷徑教程(圖靈程序設計叢書·微軟技術系列)


            C#高級編程(第6版)(Professional C# 2008) 


             

            posted @ 2011-11-18 21:18 tqsheng 閱讀(118) | 評論 (0)編輯 收藏

            網絡書

            《Unix網絡編程》兩卷;《TCP/IP詳解》三卷;
            《使用TCP/IP進行網絡互連》三卷

             首先要說講述TCP/IP的書很多,其中有3泰書很全。

            分別是《TCP/IP詳解》三卷本,《用TCP/IP進行網際互連》三卷本,《TCP/IP指南》+《IPv6》四卷本

            其中TCP/IP詳解的作者還寫了另外2本經典著作,《Unix環境高級編程》,《Unix網絡編程》

            作者W.Richard Stevens個人網站  http://www.kohala.com/

            大師作品部部經典,可惜1999年去另一個世界維護Unix了。。。。。。。。。

             

            說明:搞Linux網絡編程的,想學TCP/IP的一定要看大師W.Richard Stevens這六本書,基本上六本書看完基礎也就搭好了。

             

             

             

             

            W.Richard Stevens(1951-1999),國際知名的UNIX和網絡專家,受人人尊敬的作家。他的著作有《UNIX網絡編程》(兩卷本),《UNIX網絡高級編程》,《TCP/IP詳解》(三卷本)等,同時他還是廣受歡迎的教師和顧問。 

              Stevens先生1951年生于贊比亞,早年,他就讀于美國弗吉尼亞州的費什本軍事學校,后獲得密歇根大學學士、亞利桑那大學系統工程碩士和博士學位。他曾就職于基特峰國家天文臺,從事計算機編程。 

              Stevens先生不幸病逝于1999年9月1日,他的離去是計算機界的巨大損失。 

              W. Richard Stevens對我們這些學習Unix/Linux的程序員的影響是巨大的,每每捧讀老先生的書都會被感動,不僅被他那豐富的知識所折服,更是被他那一絲不茍,嚴謹治學的態度所傾倒。“他不清楚的,他下決心要弄明白。他知道的,他要努力傳授給所有感興趣的人們!”這就是我們的Stevens!一生能有其一部力作可謂無憾矣!而況七部乎? 

              一位朋友說:“Stevens的書一定要全部認真地去讀的。”我想他是對的。最后,對Stevens在天英靈說聲:謝謝您!想必這時他正坐在上帝身邊,繼續從事他的寫作。 

            W. Richard Stevens Biography 
            http://www.kohala.com/start/bio1.html 

            W. Richard Stevens' Home Page 
            http://www.kohala.com/start/ 

            W. Richard Stevens on Wikipedia 
            http://en.wikipedia.org/wiki/W._Richard_Stevens 

            Guru of the Unix gurus 
            http://archive.salon.com/tech/feature/2000/09/01/rich_stevens/index.html

            ----------------------------------------------------------------------------------------------------------------------------------------------------------------

            《用TCP/IP進行網際互連第一卷:原理、協議與結構(第五版)》

            《用TCP/IP進行網際互連第二卷——設計、實現與內核》

            《用TCP/IP進行網際互連第三卷:客戶-服務器編程與應用(Linux/POSIX套接字版)》

            說明:這個系列也是三卷本,和《TCP/IP詳解》三卷本一樣也是經典,區別是  網際互聯 偏重理論而 詳解偏重實際。

            ----------------------------------------------------------------------------------------------------------------------------------------------------------------

            如果你看了上面2套TCP/IP的書6本還不盡興,還有一套書可以作為提高或者查缺補漏

            雖然與W.Richard Stevens TCP/IP詳解 有一定的差距,但仍不失為下一代IPv6網絡的參考工具書,值得收藏學習

             

            ----------------------------------------------------------------------------------------------------------------------------------------------------------------

             

            《TCP/IP協議原理與應用(第3版)》

            寫的非常好,建議一定要買!可作入門,但即使是高手,也應看看,學習作者分析問題的方法和思想。其實是無數次印刷了,經典不能錯過。

            ----------------------------------------------------------------------------------------------------------------------------------------------------------------

            《TCP/IP高效編程 : 改善網絡程序的44個技巧》

            很明顯屬于技巧類的書,同樣這本書很老,但是還是很有參考價值,這本書中大量出現Unix網絡編程的提示,可以作為其補充。

            ----------------------------------------------------------------------------------------------------------------------------------------------------------------

            《TCP/IP架構、設計及應用(Linux版)》

            談不上經典,可以補充閱讀

            ----------------------------------------------------------------------------------------------------------------------------------------------------------------

            《linux網絡體系結構:linux內核中網絡協議的設計與實現》

            出版社: 清華大學出版社
            裝幀: 平裝
            出版年: 2006-7
            又名: The Linux Network Architecture: Design and Implementation of Network Protocols in the Linux Kernel
            書名: Linux網絡體系結構
            說明:翻譯的很不好,建議看原版,可以下電子版。

            一本在kernel實現網絡功能的基礎書籍,最好還是看英文版的,翻譯的實在太爛了。有條件的還是看原版吧,沒辦法啊,中國的此類書籍基本上落后老美3-4年。結合linux源代碼分析一書收獲更多。一并把內核結構和各功能在內核中的關系也搞清楚了。

            posted @ 2011-11-18 20:23 tqsheng 閱讀(198) | 評論 (0)編輯 收藏

            網絡編程——多線程技術實現網絡聊天程序

            http://www.cnblogs.com/chengfeng736/archive/2011/10/16/2214350.html

            posted @ 2011-11-18 20:16 tqsheng 閱讀(278) | 評論 (0)編輯 收藏

            VS.NET 學習方法論

            VS.NET   學習方法論  

                    ——我的VS.NET學習之旅  
            http://dev.csdn.net/develop/article/23/23542.shtm
            節選

            1.微軟支持
              在你學習VS.NET的過程中,有疑問首先要向MicroSoft求助。如果你不懂得利用MicroSoft提供的龐大的學習資源,我要告訴你,你很不幸,你舍近求遠了。
              (1)首先,你要安裝MSDN,他比所有VS.NET書籍詳細。我為了裝MSDN,可是犧犧了我的98和XP雙啟動,改成WindowsXP單系統。裝了MSDN后,你要學習正則表達式,VS.NET   2003中點擊“幫助”,再點擊“搜索”,然后輸入“正則”,一回車,哇,找到470個主題,這下你慢慢研究吧。實在研究不透,也不用急,還有Google和CSDN呢。     
              (2)在線Microsoft   .NET   框架   SDK   快速入門教程(http://chs.gotdotnet.com/QuickStart),可配合MSDN使用。分三塊內容,   ASP.NET   |   Windows   窗體   |   如何...?常見任務   。   “常見任務快速入門”旨在幫助您快速找到常見編程問題的答案。
              (3)微軟中國社區(http://www.mscommunity.com/Profile/)。在社區注冊,有問題就到社區去提問吧。
                (4)在線中文MSDN(http://www.microsoft.com/china/MSDN/default.asp);在線英文MSDN(http://msdn.microsoft.com/),考考你的E文,不過有金山詞霸在,我都不怕,你還用怕什么呢!
              (5).NET主頁(http://www.microsoft.com/china/net)
                (6)Visual   Studio   .NET主頁(http://www.microsoft.com/china/msdn/vstudio/prodinfo/overview.asp)。
                 為什么選擇VS.NET,為什么看好VS.NET,看看MicroSoft的Help文檔有多詳盡就知道了。如果你不去利用MicroSoft提供的龐大的Help資源,是不是有點對不起蓋茨呢!    

              2.CSDN http://www.csdn.net/
              CSDN號稱中國最大的開發者網絡,確實不假。我最常去的是CSDN的
              文檔(http://www.csdn.net/develop/)
              論壇(http://expert.csdn.net/expert/forum.asp)
              只要你善于利用搜索功能,你在開發中遇到的多數問題可在文檔和論壇中找到答案。如果你在開發過程中遇到疑難,而你又認為   BillGates幫不上你的忙,那么,你就上CSDN吧,一定會讓你滿意的。
                 教你兩個絕招,第一招,是“搜索大法”。遇到問題,首先是在CSDN的文檔和論壇進行搜索,看有無類似答案。如不行,再下一招。
                 第二招,“提問大法”,只要有禮貌有誠意地在論壇提問,一定有許多人樂于回答你的問題。

              3.其他相關網站
                 有不少網站開辟VS.NET專欄,常去看看,必有收獲。
              pconline跟我學NET專欄(http://www.pconline.com.cn/pcedu/empolder/net/)

                yesky的Visual   Studio.NET專欄(http://www.yesky.com/SoftChannel/72342380467978240/index.shtml)  

                ccidnet的NET專區(http://tech.ccidnet.com/pub/column/c340.html)

              4.資料下載
              如果不是包月上網,那么下載大量資源,再斷線慢慢研究就很有必要了。

                網友提供的大量VS.NET資源下載(ftp://qydn.vicp.net) 

            北京希望電子出版社圖書素材資料下載(http://www.b-xr.com/bbs.htm)
             
              清華大學出版社VS.NET源碼下載(http://www.wenyuan.com.cn/xiazai.htm)

              5.國外資源
                 如果你的E文不錯,不妨上E文網站去取經。  

              http://www.startvbdotnet.com  

              http://www.freevbcode.com/  

              http://www.vbdotnetheaven.com  

              http://www.vbaccelerator.com  

              http://www.vbcity.com/  

              http://www.vbip.com  

              http://www.a1vbcode.com/     

              http://searchvb.techtarget.com/  

              http://www.vbcode.com/  

              http://www.vbwire.com/  

              http://builder.com.com

              http://www.developer.com  

              http://www.codeproject.com  

              http://www.dotnetjunkies.com
              
              http://www.planet-source-code.com/  

              http://sourceforge.net/   

              http://www.syncfusion.com/FAQ/WinForms/  

              http://www.123aspx.com  

              http://panopticoncentral.net/  

              http://www.regexplib.com/  

                   http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html  

              http://www.only4gurus.com/v2

              http://www.gotdotnet.com  

              http://www.programmersheaven.com/

              http://www.aspnetpro.com

              http://www.dotnetgenius.com/  

              http://www.devx.com/dotnet  

              http://www.developerfusion.com/  

              http://www.devcity.net  

              http://www.devhood.com  

              http://www.devshed.com/ 

              http://www.devarticles.com/  

              http://www.c-sharpcorner.com/  

              http://www.csharphelp.com/     

                 http://authors.aspalliance.com/aldotnet/examples/translate.aspx  

              http://www.dotnet247.com  

              http://www.datagridgirl.com
               
              http://www.codestudy.com     

              

              6.其他特色網站、專欄
              CSDN上Latitude的VS.NET專欄(http://www.csdn.net/develop/author/netauthor/Latitude/)

                【孟憲會之精彩世界】(http://xml.sz.luohuedu.net/xml/) 

              DotNet中華網(http://www.aspxcn.com/)

                 ASP酷(http://www.aspcool.com/)  

              http://www.chinaaspx.com  

              http://www.webasp.net  

              http://218.56.11.178:8009/       海波.NET的水晶報表專欄

              http://www.aspx8.cn/  asp.net資源吧

              http://www.cnblogs.com/ 博客園

              http://dotnet.mblogger.cn  

              http://blog.joycode.com/ 博客堂

                
                 當然,還有一個地球人都知道的,全球最大的知識倉庫,我不說,你也早就應該知道的,那不是http://www.google.com又是什么!


              第五點體會:掌握并利用大量網絡資源來輔助VS.NET的學習,你將事半功倍。

               
            我的QQ:    26624998
            我的網站:http://blog.csdn.net/2066
            本文地: http://blog.csdn.net/2066/archive/2004/05/25/21073.aspx

            posted @ 2011-11-18 19:53 tqsheng 閱讀(161) | 評論 (0)編輯 收藏

            QQ會員

            一律撥打168858861 號鍵

            posted @ 2011-11-03 22:23 tqsheng 閱讀(138) | 評論 (0)編輯 收藏

            利用命令行 提升Windows Server 2008管理效率

            利用命令行 提升Windows Server 2008管理效率

            發布時間 :2009-2-27 9:58:40    來源:網絡   作者:    添加到我的收藏

              一個熟練的并且有一定的技術深度的服務器管理員,他們往往會棄用友好的圖形界面而選擇用命令來進行服務器的管理。這樣不僅能夠提升工作效率,而且在命令行下可以實現許多在圖形界面下無法完成的任務。對于Windows Server 2008這樣的服務器操作系統來說更是如此,善用命令在很大程度上解放管理員。下面筆者向大家介紹幾個在Server 2008中非常實用的命令

              1.用ServerManagerCMD命令進行服務器管理

              ServerManagerCMD是服務器管理器的命令行工具,用于支持三種重要的操作:添加和刪除角色、角色服務、功能,以及用于顯示安裝的角色、角色服務、功能。對于去具體的參數大家可以在命令行下輸入“ServerManagerCMD /?”進行查看。其中-query、-install、-remove是三個最常用的參數,分別用戶查詢、安裝和刪除服務器角色、角色服務和功能。下面筆者分別演示這三個參數的用法。

              (1).查詢

              在命令提示符窗口中輸入命令“ServerManagerCMD -query”,回車后就可以查看到服務器的配置和功能,從而省去了在“服務管理器”的圖形界面中來回地切換。顯示結果一目了然:角色和功能會分成兩組,另外已經安裝的角色、角色服務、功能會以綠色顯示并在該項的前面有[X]標識,沒有安裝的顯示為白色前面標識為[ ]。如圖1所示筆者的服務器安裝的服務器角色有:Active Directory 域服務、DNS 服務器、Windows 部署服務,安裝的功能組件有:TFTP 客戶端、組策略管理器。另外,所安裝的角色服務以層次結構顯示在對于的角色下面。(圖1)

              

                
                筆者還有一個技巧和大家分享:當服務器安裝了多個角色、角色服務以及功能組件,如果管理員要查看是否安裝了某個對象這將比較麻煩。其實ServerManagerCMD -query支持管道命令“|”,我們可以這樣來做:假如我們要查看服務器是否安裝了組策略管理組件,可在命令行下輸入“ServerManagerCmd.exe -query | GPMC”,回車后如果安裝了此組件就會打開該工具,否則會顯示錯誤提示(比如輸入命令“ServerManagerCmd.exe -query | RSAT-TS”查看是否安裝了終端服務工具,因為沒有安裝會輸出錯誤)。(圖2)
                
             


                
                (2).安裝

              Windows Server 2008默認情況下并沒有安裝telnet客戶端,假如我們要安裝該功能組件,可在命令提示符下輸入命令“ServerManagerCmd.exe -install Telnet-Client -resultPath installResult.xml”并回車。此時就開始Telnet-Client功能組件的安裝,并且會實時顯示安裝的進度(百分比),很快安裝完成。上述命令中,“Telnet-Client”是Telnet客戶端的系統名稱,必須用英文名稱不能用中文,否則會顯示“無效的角色、角色服務或功能”。當然,對于一個熟練的服務器管理員記住這些名稱應該不是難事。如果你忘記了可通過上面的查詢命令“ServerManagerCmd.exe -query”來查看。“-resultPath installResult.xml”參數的作用是以XML的格式將剛才的操作結果保存到installResult.xml文件中。另外,如果安裝的角色需要重啟計算機我們可以在后面加一個參數“-restart”,以實現安裝完成后自動重啟系統使剛才的安裝生效。(圖3)

              (3).刪除

              要刪除服務器角色、角色服務或者功能組件其操作方法和上面的類似,只是改變ServerManagerCmd.exe命令的參數即可。例如我們要同時刪除“Windows 部署服務”角色和“TFTP 客戶端”功能組件,可在命令提示符下輸入命令“ServerManagerCMD -remove WDS TFTP-Client”并回車。然后開始刪除并顯示刪除進度,稍等片刻即可完成刪除任務。如果要刪除更多的角色或者功能,只需將該角色或者功能的名稱依次輸入并相互之間以空格分開即可,這遠比圖形界面中的操作要快很多。(圖4)

               


                
                2、快速配置服務器組件

              服務器的配置不僅僅是技術活,有的時候也是體力活。服務器管理員如何實現服務器的快速配置,以提升工作效率自我解放呢?善用命令和使用腳本這是一套立竿見影的解決方案,下面筆者列舉幾個實戰案例。

              (1).配置防火墻

              防火墻配置是服務器安全部署的重要方面,也是一項比較繁瑣的工作。特別對于Windows Server 2008這樣的服務器平臺,它的系統防火墻功能是非常強大的并且可配置項非常多。下面和大家分享幾個實用的命令以及一個配置案例。

              打開命令提示符輸入輸入命令“netsh firewall show state”然后回車可查看防火墻的狀態,從顯示結果中可看到防火墻各功能模塊的禁用及啟用情況。命令“netsh firewall set opmode disable”用來禁用系統防火墻,相反命令“netsh firewall set opmode enable”可啟用防火墻。(圖5)

               


                
                接下來我們通過命令行進行防火墻配置,以實現允許訪問文件和打印共享以及DNS查詢。打開命令提示符輸入命令“netsh firewall add portopening UDP 53 DNS-Server”然后回車,命令執行后服務器就能夠響應客戶端的DNS查詢請求,并為其提供DNS服務了,很簡單一個命令搞定。下面我們通過命令實現客戶端可通過文件和打印共享訪問服務器,分別輸入并執行如下命令:“netsh firewall add portopening UDP 137 Netbios-ns”(允許客戶端訪問服務器UDP協議的137端口)、“netsh firewall add portopening UDP 138 Netbios-dgm”(允許訪問UDP協議的138端口)、“netsh firewall add portopening TCP 139 Netbios-ssn”(允許訪問TCP協議的139端口)、“netsh firewall add portopening TCP 445 Netbios-ds”(允許訪問TCP協議的445端口)。命令執行完畢后,文件及打印共享所須的端口都被防火墻放行了,我們從客戶端訪問試試果然成功。上面的命令雖然比較多,但格式類似也是非常好記的。(圖6)

               


               (2).腳本在Server Core下的應用

              Server Core是摒棄Windows Server 2008華麗功能的一個最小安裝的服務器版本,Server Core的配置離不開命令行和腳本。在命令行下執行“cd cd c:\windows\system32”來到system32目錄下,輸入“cscript SCregEdit.wsf /di”然后回車,就會把所有常見的配置Server Core的命令全部列出,而不需要管理員自己摸索。其中,SCregEdit.wsf是Server Core特有的腳本,它有很多參數供管理員使用。輸入“Cscript slmgr.vbs -dlv”可顯示服務器的授權狀態。假如我們要在Server Core下啟用遠程桌面,可首先打開命令跳轉到system32路徑下然后執行命令“cscript SCregEdit.wsf /Ar 0”啟用遠程桌面。接下來需要配置防火墻打開遠程桌面使用的端口,執行命名“netsh firewall add portopening TCP 3389 Remote-Desktop”即可。腳本是Server Core中非常有用的資源,大家應該好好去挖掘和利用。(圖7)


                
                (3).其他腳本和命令行工具

              在Windows Server 2008中還有一個強大的命令行工具PowerShell,它遠比CMD強大對服務器系統的可操作性更多。默認情況下PowerShell功能組件并沒有安裝,我們可在命令行下通過

              ServerManagerCmd.exe命令來安裝,即運行“ServerManagerCmd.exe -install PowerShell”即可。安裝完成后執行“開始”→“所有程序”→“Windows PowerShell 1.0”→“Windows PowerShell”即可運行PowerShell。運行“get-command | more”和獲得所有的PowerShell命令并以分屏顯示。PowerShell的命令包括兩部分,非常具有可讀性,管理員可同名命令名稱猜到該命令的作用。比如我們要在PowerShell訪問注冊表,可執行“cd -path hklm:\”可進入注冊表HKEY_LOCAL_MACHINE主鍵路徑下,繼續執行“dir”顯示HKLM主鍵下的各子鍵,執行“cd Software\Microsoft\Windows\CurrentVersion\Run”進入系統自啟動項下,執行“gp . *”將顯示RUN項的屬性以及下面的鍵值,輸出結果中前面四個位RUN項的屬性,據此管理員可進行進行分析啟動項是否正常。其次,比如我們在PowerShell命令行下輸入命令“Get-Process | Out-File -FilePath C:\process.txt”及“Get-Service | Out-File -FilePath C:\srver.txt”可將服務器當前的進程及其服務狀態輸出到文件中,在以后的服務器維護中可作為對比。其實,PowerShell的個完全可替代CMD的工具,通過它幾乎可以完成所有的系統操作,深入學習PowerShell對于提高管理效率確實非常有用。(圖8)

               


              另外,WinRM也是非常有用的管理工具。使用WinRM進行遠程服務器管理,可以減少并不安全而且繁瑣的RPC連接,只需要使用HTTP或者HTTPS就可以了,這對于跨越防火墻管理的場景非常有用。首先在命令行下執行“WinRM QuickConfig”,然后輸入“y”可啟用WinRM遠程管理。接著繼續執行命令“WINRM Enum Winrm/Config/Listener”可以看到服務器上的偵聽配置情況,如圖9所示http的80端口處于監聽狀態,這樣可以通過客戶端的瀏覽器來管理服務器了。WMI也是管理員可用的服務器管理工具,在實戰中編寫WMI腳本來代理管理員完成一些需要管理員付出非常多的精力的重復而大量的操作。(圖9)

               

                
                3、獲取服務器詳細信息

              對于服務器來說,管理和監控是并舉的。服務器管理者需要隨時了解服務器的軟硬件情況及其運行狀態,在Windows Server 2008中不需要借助第三方工具在命令行下就可實現。

              在命令行下執行systeminfo.exe命令,可以看到關于操作系統及其服務器硬件的詳細信息,當然systeminfo.exe命令并部署Windows Server 2008所特有的。如果我們要知道服務器中安裝的所有msi規范的應用程序,可首先打開命令提示符然后輸入命令wmic進入其命令模式,然后執行product命令就會顯示你要的結果。如果要卸載安裝的某個msi的應用程序,可調用product的uninstall方法,命令格式為WMIC product where name="" call uninstall。當然大家所知的tasklist、net share、net server等都是我們獲取服務器信息的命令,其實我們可借用PowerShell中的相關命令獲取更加詳細的服務器信息。在PowerShell中幾乎所有以“get”為前綴的命令都與獲取服務器信息相關,比如“get-date”可獲取當前系統日期,“Get-EventLog”可獲取服務器日志信息,“Get-PSDrive”獲取系統分區信息等等。(圖10)

               


                
                總結:服務器管理質量固然重要,但效率也同等重要,它們之間并不矛盾而是互相促進的。作為服務器管理者更多地通過命令來進行管理無疑會極大地提升管理的效率,對于Windows Server 2008這樣的服務器平臺更是如此。上面僅僅是筆者運用命令行管理服務器的一些經驗,更多的技巧需要我們大家在實踐中摸索和提高,希望本文對大家有所幫助。

            posted @ 2011-10-27 14:15 tqsheng 閱讀(352) | 評論 (0)編輯 收藏

            ClearCase vob

            二、定義  Rational ClearCase提供了一個開放的體系結構用來進行軟件配置管理(Software Configuration Management,SCM)。ClearCase可以管理軟件項目開發的過程中產生的源程序及各種文檔的系統。從更廣的意義上來說,任何一種項目的智力資產,只要可以被記錄為數字形式都可以用ClearCase進行管理。
              ClearCase不僅提供了對這些智力資產存取的功能,而且記錄了對這些資產每次修改的所有版本。ClearCase將中所有的版本存儲在Versioned Object Base (VOB) 中。VOB中還保留了一些其它與項目和配置有關的信息,所以VOB可以看作是整個ClearCase SCM系統的中心數據庫。

            編輯本段三、結構

              正如前面所說,可以把VOB看作一個數據庫系統。一個數據庫系統的邏輯和物理的結構是截然不同的,比如一個關系型數據庫,邏輯上可以看到的是:表,字段,視圖,存儲過程,用戶,和權限等;物理上可能是一系列文件或磁盤分區。了解數據庫的邏輯結構可以幫助我們更好的使用它,而了解數據庫的物理結構是為了更好地對它進行管理。先將簡單介紹一下ClearCase VOB的邏輯結構,然后著重描述它的邏輯結構。

            邏輯結構

              VOB中的數據主要有兩種:簡單數據(文件和目錄及其各個版本)、復雜數據(分支、標簽、事件記錄、等等)。這些數據的結構和格式被VOB的Schema所決定。VOB的Schema是可以改變的。一個VOB增加了一定屬性可以具有特殊用途,比如:管理VOB, 統一變更管理(Unified change management,UCM)VOB,和項目VOB(PVOB)。另外VOB提供的功能還與它的特性層次(Feature level)有關,某些功能的使用,要求改變VOB的特性層次。

            邏輯結構

              有關一個VOB的物理文件都是存儲在一個目錄(VOB Storage directory)中的。了解這個目錄中的每個文件,有助于我們更好地管理VOB。我需要在這里著重指出一點就是:請勿用非ClearCase的工具對此目錄或里面的文件進行任何操作,包括修改文件或目錄的內容及其讀寫權限。這樣做很可能會導致VOB無法訪問。因為雖然它們看起來像普通的文件和目錄,但是ClearCase賦予了它們很多附加屬性,而一般的工具很難識別并保存這些屬性。當然如果您不幸犯了這樣的錯誤導致VOB無法訪問,ClearCase提供的一系列工具仍然可以幫助您修復。
              當用操作系統的列目錄命令(ls,dir等)查看VOB存儲目錄時,您將會看到以下內容:
              .pid 單行文本文件,記錄了vob_server的進程號。
              admin 一個目錄,包含VOB使用的磁盤空間 。
              vob_oid 單行文本文件,記錄VOB的對象標識號,用UUID的方式表示。可以在ClearCase多復本(MultiSite)環境中用來表示一個VOB家族。一個VOB家族通常包含一個原始VOB和若干個它的克隆VOB。
              replica_uuid 單行文本文件,記錄了該VOB復本UUID,用于區分在一個VOB家族中的不同復本VOB。
              .identity 一個目錄,在UNIX系統中,記錄了VOB的所有者和所有者組的信息,用于訪問權限控制。
              identity.sd 一個二進制文件,在Windows系統中,記錄了VOB存儲目錄用戶的安全描述符。
              groups.sd 一個二進制文件,在Windows系統中,記錄了VOB存儲目錄次要用戶組的安全描述符。
              s 一個目錄,用來存儲文件或目錄的所有版本。
              c 一個目錄,暫時存儲一個文件或目錄的某個版本,用來作為s的緩沖池。這個緩沖區會經常進行刷新,在ClearCase中被叫做Scrub。在[CC Admin]中有專門的章節介紹Scrubbing操作。
              d 一個目錄,用來存儲派生對象。當您編譯VOB中的源文件時所產生的目標文件在ClearCase中可以作為一個派生對象(Derived Object, DO)。共享這些DO就可以使不同視圖使用相同的二進制目標文件,從而減少冗余,更加快了編譯的速度。ClearCase中把一個DO的第一次產生叫做wink in。這個目錄也會被系統定期Scrub。
              db 一個目錄,包含VOB使用的一個內嵌數據庫系統(Raima Database)。除了文件和目錄版本實際拷貝以外的其他數據都存儲在這個數據庫中。當您進行了reformatvob命令之后,這個目錄的舊版本將會以重命名的方式保留下來,以防萬一。
              vob_server.conf 一個文本文件,用于配置vob_server啟動時的一些信息。
              .hostname 一個文本文件,記錄了VOB服務器的名字。
              .msadm_acls 記錄ClearCase多復本環境中管理服務器的訪問控制列表
              在此還有必要介紹一下內嵌數據庫(目錄d)的物理結構:
              vob_db.dbd 一個編譯好的數據庫Schema,描述了數據庫的結構。
              vob_db_schema_version 一個Schema版本文件,數據庫用它來比對編譯好的數據庫Schema。
              vob_db.d0n, vobdb.k0n 數據庫的內容。
              vista.* 數據庫的控制文件和交易日志
              db_dumper 一個系統可執行db_dumper的備份。reformatvob將會調用此備份,如果系統目錄下的版本不可用,以確保數據庫導出的成功。
              vob_db.str_file 數據庫字符串文件,用來存儲長字符串。 從以上的結構中可以看出,ClearCase是一個復雜而功能強大的系統。它包含了一個內嵌的數據庫和若干個自制的存儲池。它們之間的相互協作不僅可以提供簡單的版本管理,更可以實現分布式開發,并行編譯等其他系統不具備的功能。因此對VOB的任何操作必須是十分小心和有計劃地進行。但是在具體應用中往往會發生一些人為和不可避免的錯誤,下面就這些問題進行一些探討。所有列舉的ClearCase的命令僅供參考。

            編輯本段四、相關問題

              當用戶提取一個文件的某個版本時,通常的操作是這樣的:
              1. 用戶發送請求到VOB數據庫;
              2. 數據庫找到相應的源代碼存儲池并查詢到相應的版本號,將請求送給一個叫做Type Manager的程序;
              3. Type Manager 發現Cleartext pool緩存中沒有這個版本的文件;
              4. Type Manager 從源代碼存儲池中獲取相應版本的文件并放入Cleartext pool中;
              5. 用戶從Cleartext pool 中得到要求的文件版本
              因此經常出現的與VOB相關的問題大致可以分為以下三類:

            1.內嵌數據庫和存儲池之間不同步問題

              這類問題的產生主要是因為VOB數據庫中有關存儲池的信息和實際的存儲池信息不一致造成的,比如:VOB數據庫中含有不存在的存儲池,VOB數據庫中對于存儲池的訪問控制信息不正確,或者有的存儲池在VOB數據庫中沒有記錄。造成這些不一致的原因可能是因為網絡問題,不成功的備份恢復,或者是用戶錯誤地操作了VOB存儲目錄下面的文件或目錄。解決這些問題的方法就是將VOB數據庫和存儲池的信息實施同步。 (來自[SCM503])顯示了一個典型的此類錯誤的view_log中有關的信息 。
              可以看出系統無法找到cleartext pool或source pool相應文件。我們可以用checkvob命令來檢測和修復此類問題:
              checkvob -pool -source /vobstg/vob1.vbs 用來檢測vob1的源代碼存儲池問題。
              checkvob -fix -pool -source /vobstg/vob1.vbs 用來修復vob1的源代碼存儲池問題。
              下面是checkvob命令對各類問題的解決方法: 問題解決方法 :
              找不到存儲池 掃描整個存儲池目錄,重建各條記錄 ,沒有記錄的存儲池將沒有引用的存儲池放入lost+found目錄 ,存儲池訪問控制錯誤 在用戶權限允許的情況下重建訪問控制信息 。

            2.有關VOB 內嵌數據庫的問題

              當VOB內嵌數據庫本身出現問題時,您將會發現很多操作無法完成。db_server 和vobrpc_server是和數據庫通信的兩個進程,查看它們的日志有助于問題的解決。dbcheck 和 reformatvob可以幫助您從大部分的問題中恢復。更深層次的內嵌數據庫本身的問題已經超出本文的范疇,請參考文檔[VOB DB]。
              內嵌數據庫另外一種常見問題是由于數據庫的某些文件超出上限造成的VOB不可訪問。VOB內嵌數據庫所存儲的紀錄是有限的。這可能是因為磁盤沒有空間,數據庫文件達到本身或操作系統的上限。在Schema 53中,數據庫可以存儲的記錄大概是224,數據庫文件的大小一般不能超過2GB。
              當內嵌數據庫數據文件(vob_db.d0n,vobdb.k0n)過大時,您可以在ClearCase database server log 中看到db_VISTA 錯誤(錯誤號為:-900、-909、-912、-914、-919、2)。您可以進一步用命令countdb 查看數據庫的使用情況,如下。
              有三種方法可以幫助您解決此類問題:
              1. 您可以將VOB中的一些目錄移走來解決暫時的限制,也就是將大VOB分裂為幾個較小的VOB;
              2. 手工刪除VERSION_LABEL_LINK, DOT_DOT/NAMESPACE_DIRECTORY_VERSION_ENTRY, 和 OPLOG_ENTRY 的記錄數;
              3. 最好的方法是采用或升級到Schema54或以上。升級VOB可以使用reformatvob命令,但是這個操作一般需要很長很長的時間。
              除了數據文件過大以外,控制文件、日志文件、和字符串文件過大也會影響到VOB的訪問。控制文件和日志文件的大小可以在db.conf文件中配置。字符串文件過大可以通過sting_report.exe檢測到。根據sting_report.exe的結果刪除不用的視圖和DO等可以縮小字符串文件的大小。

            3.有關存儲池本身的問題

              當排除了以上兩種問題的可能性以后,VOB還有問題,那可能是因為存儲池本身受到了損害,首先應該檢查VOB存儲目錄下的文本文件中的信息是否正確。例如:如果VOB server的名字改變了應該檢查.hostname。
              如前文所述,ClearCase VOB存儲目錄下的文件不能用一般的工具進行修改。如果您不小心在Windows瀏覽器中修改了某個文件或目錄的屬性,可能會造成它們無法訪問。如果是VOB的根目錄,則整個VOB將無法訪問。在Schema53中可以用fix_prot來修理,在Schema54中可以用vob_sidwalk。
              如果問題仍然存在,最后可以用ck_all_tfd_for_nulls.pl命令進行檢查,一旦發現錯誤可以將以前備份的存儲池恢復到受損目錄,然后再運行checkvob命令,或者運行一次標準的ClearCase恢復操作。

            4.修復VOB常用工具和手段

              checkvob 可以發現存儲池和內嵌數據庫的不一致,用-fix選項可以對發現的錯誤進行修復。
              ck_all_tfd_for_nulls.pl 在文本存儲池中查找受損部位。它是一個系統工具,一般在utils目錄下。
              countdb.exe 可以顯示內嵌數據庫空間的使用情況,一般在utils目錄下。
              string_report.exe 用于檢測內嵌數據庫字符串文件的使用情況,一般在utils目錄下。
              db log and vobrpc log files 當懷疑內嵌數據庫有問題時可以查看這些文件。
              dbcheck.exe 可以檢查出80%有關內嵌數據庫的問題。
              reformatvob 將VOB內嵌數據庫導出為文本文件,或將導出的文件重新導入一個新的數據庫,用于數據庫的升級和減小數據庫大小。
              vob_sidwalk 改變VOB數據庫中元素的安全標示,也就是用戶和用戶組標示。
              fix_prot產生或修復.identity/ identity.sd文件。
              lsacl 顯示一個VOB的安全標示結合fix_prot可以修復對目錄和文件訪問控制問題。
              rmtype 刪除VOB中的對象類型,可以用來縮小內嵌數據庫的大小。
              rmver 刪除元素的版本,可以用來縮小內嵌數據庫的大小。
              vob_scrubber_params file 調整scrubber運行的頻率,以免VOB過大,但是如果參數太小,會造成系統性能下降。

            5.總結

              當VOB發生問題時,應該盡量先使用上面提到的工具對問題進行定位,確定問題發生在VOB內嵌數據庫,存儲池,還是兩者之間的同步。然后使用相應的工具進行修理。最后提醒一下,作為一個ClearCase管理員,應該經常備份系統關鍵數據。

            posted @ 2011-10-26 21:44 tqsheng 閱讀(451) | 評論 (0)編輯 收藏

            IBM Rational ClearCase-Samba 協同環境的設置和問題解決

            IBM Rational ClearCase-Samba 協同環境的設置和問題解決

             

             

            簡介: 本文包括了在IBM Rational ClearCase協作開發環境中編譯、安裝、配置和修改 Samba,包括一些常見錯誤的深入解決方法。本文描述基于標準模板的配置,這種配置在世界上大多數 Nortel 網站使用。

            本文的標簽:  rational_clearcase

             

            發布日期: 2005 年 1 月 01 日
            級別: 初級
            訪問情況 : 901 次瀏覽
            評論: 0 (查看 | 添加評論 - 登錄)

            平均分 1 星 共 2 個評分 平均分 (2個評分)
            為本文評分

             

            摘要

            本文包括了在IBM Rational ClearCase協作開發環境中編譯、安裝、配置和修改Samba,包括一些常見錯誤的深入解決方法。本文描述基于標準模板的配置,這種配置在世界上大多數Nortel 網站使用。


            相關的文章

            下面的zip文件包括模板樣例,詳細的指導和其它的資源。要想查看這些文件,下載zip文件到本地,解壓縮,然后打開文件 samba.html.

            下載


            IBM Rational ClearCase-Samba 協同環境的設置和問題解決

            本文包括以下主題:

            • 什么是協同環境?
            • 如何從源代碼構建Samba
            • 如何配置Samba
            • 從Samba 2.0.X升級到Samba 2.X
            • Samba和Rational ClearCase問題解決

            我非常愿意告訴你一點背景,關于我為什么關心更有效地設置和配置Samba這個主題。我從1999年3月開始使用Samba,配置幾個服務器。每個服務器都需要手工配置,這一點是很痛苦的。此外,我們有多種不同的環境:從擁有500個VOB的8個VOB服務器到只有22個VOB的一個VOB服務器。另外,我們的環境是分布的,在美國和加拿大有幾個工作場所,還在巴西、英國、法國有工作地點。因此,我一直努力工作以使得配置和設置過程變得更容易。

            ClearCase 協同環境

            為了更好地理解本文的內容,回答下面的問題是有幫助的:

            • 什么是ClearCase協同環境?ClearCase支持UNIX和Microsoft Windows客戶端混合環境。
            • 為什么我們需要它?你必須使用NFS或者SMB服務器產品來得到客戶端的數據。
            • 為什么我們要使用Samba?
              • 它是開源的,也就意味著是免費的。
              • 它的配置是以服務器為中心的--我僅僅需要在很少的地方進行配置(我可不愿意出去配置每個客戶端)。

            我已經試過TAS、Hummingbird Maestro、和其它NFS客戶端產品,但是我已經在使用Samba上有最少的麻煩和最好的成果。

            構建Samba

            得到源代碼是很容易的。當前的版本是2.2.8a,它已經被證實可以用在ClearCase上。你可以從 Samba website得到源代碼。注意它有一個優勢是源代碼可以編譯為64位的應用程序。我在2001年遇到的問題是我不能夠Build。即使我限制了mnode設置,它仍然不能工作。我給出了一個補丁可以讓我打開更多的文件,并把它提交給了Samba開發組。64-Bit 編譯可以讓你打開更多的文件而不用限制 mnodes的個數(稍后討論)。一些操作系統可能不需要編譯成64-bit。圖1描述了在Solaris環境中構建Samba。

            圖 1: 在Solaris中構建Samba

            如果你想要關于這個patch的更多詳細信息,我可以提供下面的鏈接:

            在32-bit環境中,有與使用系統調用 fopen有關的另一個限制。Samba使用這個系統調用來打開一些文件,通常是log文件。當打開超過256個文件時,Samba服務器將出現錯誤。這時,將終止Samba的安裝,Samba將不可用。

            圖 2 顯示你可以使用不同的編譯器把Samba編譯成64-bit的應用程序。Forte編輯器是你可以從Sun買到的一種編譯器。你也可以使用GCC (GCC 3.x流需要進行64-bit編譯).

            圖 2: 使用Sun Forte或者GCC Build Samba

            你也可以在HP-UX 上構建(圖 3),HP-UX 11.x 是一個64-bit的操作系統。此外,在圖3的第2小節中,有一些可以更改的設置,這些設置可以用來改善性能。

            圖 3: 在HP-UX上構建Samba

            一個附加的編譯步驟可以編譯兩個運行Samba時很有用的實用程序,如圖4所示。缺省時,常規的編譯并不構建這些程序。它們可以幫助你管理數據庫密碼和其它一些對操作Samba很重要的參數。

            圖 4: 安裝附加的Samba實用程序

            圖5顯示在你使用 SWAT--一種基于Web的管理Samba的工具--時可能出現的編譯問題。

            圖 5: 可能的編譯問題

            問題的現象是:在你輸入你的用戶名和密碼準備訪問SWAT時,它返回一個空的頁面或者什么也不返回。這應該是 SWAT返回了一個SEGV信號。問題的原因是有壞的文件頭,但是如果你使用最新的發布版本的話,這個問題應該已經解決,他們修正了這個問題。如果在你試圖使用SWAT時出現這個問題,運行:

            CPPFLAGS=' -D_EXTENSIONS_'; export CPPFLAGS

            最常見的原因是,在有人試圖使用GCC 2.x代替3.x時GCC 64-bit編譯失敗,前面已經討論過,你必須使用GCC 3.x或者以后的版本。最后,在2.2的Stream中有一個中間的Bug:如果你試圖構建一個共享庫時,共享庫會失敗,因為它不能通過所有的編譯器修正標志。這個問題可以通過定義一個特殊的SHLD宏來解決:

            make SHLD=' ${CC} ${CFLAGS} '

            在HP-UX 11中,如果你使用這個選項構建 libsmbclient,它似乎失敗,但是它對正常操作是沒有必要的(它是一個實用程序庫,你可以在你自己的程序中使用)。我不能夠確定它為什么失敗和如何修復它,因此當前的工作很簡單,不包括它就可以了。最后,在使用Sun編譯器構建64-bit的一些附加選項(圖6):

            圖 6: HP-UX 編譯問題和Sun Forte選項

            配置 Samba

            關于配置文件的結構,我進行了一些修改以便使得可以更加容易地把配置文件發布到很多個服務器,而不需要在每個服務器上進行更多的配置工作。缺省時,配置文件的名字為 smb.conf。我仍然有這個文件,但是我增加的兩個Hook配置 smb.conf.global.<hostname>smb.conf.shares.<hostname>。Global文件維護一些與系統相關的參數。你只需要在初始設置服務器時配置它,以后不需要進行修改。

            The smb.conf.shares.<hostname>是用來配置你的Samba服務器可用共享的文件。這個配置文件你可以隨著時間的推移進行修改,因為共享將被不斷地創建、刪除和修改。

            Example templates 是這些文件的示例模板--它們是機器可讀的格式。初始文件, smb.conf,不需要進行任何修改。你僅僅需要做的事情就是,如果你的操作系統是32-bit的,你要設置 max open files一個較小的數值。但是,我仍然建議你盡可能不使用32-bit操作系統。

            如果在系統有多個網絡接口時,你想要獨立運行 smbdnmbd daemons,你必須修改 smb.conf 文件。我們下面再討論為什么你要有分開的daemon。如果你正在使用多個daemon,你要分開保存你的Log文件。注意log文件是很重要的文件,因為它們可以幫助你跟蹤調試問題。我使用的缺省配置是每個客戶端有獨立的log文件:如果你僅僅使用一個Log文件來處理數千個客戶端,要想在文件中找到你所需要的信息是非常困難的。這種情況下Log文件一般有10M左右。如果你有上千個客戶端,每個都有10M的Log文件,它將占有大量的空間。當然一般情況下,事情不會這么糟,但是你一定要記住這一點。

            如果你使用多個daemons,需要在 smb.conf.global.<hostname> 中用主要的主機名代替 include directive %h參數。這將使你對每個主機/接口有一個獨立的文件。

            轉到下一個文件, smb.conf.global.<hostname>,你需要考慮的第一步是你要如何處理認證。認證指令有:安全、工作組和口令服務器。安全指令有四個選項,但是我不準備詳細描述它們的意義。如果你想要詳細了解這些選項的意義,可以參考 Samba 的文件: DOMAIN_MEMBER.txt 。首要的選項是 security=domain,它提供最好的性能。主要的一點是在設置 security=domain時,Samba服務器完全在域中共享。它有一個機器帳號,可以通過域控制器的認證請求,以及可以讓域控制器處理認證。

            繼續下去,口令服務器指令是在你認證時需要的域控制器的名字。在Nortel中有些變化:前面我們有分離的機器資源域和用戶資源域。你必須能夠指定兩個域控制器,因為Samba服務器必須使用 機器域進行認證,而用戶必須使用 用戶域進行認證。我不知道其它組織是怎么做的,但是我們把機器和用戶域合并為一個單獨的域,我們也移動到Active Directory。

            你在多子網環境下需要使用WINS服務器,也為了進行瀏覽。你并不需要真的使Samba服務器支持瀏覽,但是口令服務器指令處理IP地址。注意到這一點很重要:即使你提供了多個IP,它只使用第一個IP,從來不會使用其余的。

            配置多網絡接口

            為什么你要這么做?一個原因是管理每個獨立網絡接口的性能。 The ClearCase Administrator's Guide 討論了在不同的子網管理不同的ClearCase區域,這里隱含了不同的網絡接口。你可以限制Samba到服務器的一個可用的子網接口。在我們的實例中,我們使用不同的網絡接口進行備份,因此沒有理由在備份接口上運行Samba -- 沒有人愿意從那個位置訪問

            示例

            下面給出一些例子,以顯示你可以如何修改配置文件。例如,你可能想要在一些接口上運行Samba,而不是在全部接口上運行。在這個例子中,我選擇兩個私有地址,并使用 interfaces 指令來列出你想要訪問的接口。你需要第二個指令, bind interfaces only=yes,來完成配置。Samba監聽所有接口,因此你必須指定 bind interfaces only=yes 來限制它只監聽在接口指令中列出的接口。

            前面的例子僅僅需要在一些接口上有 smbd/nmbd daemon,而不是全部。如果你正在使用多個daemon,一個(只有一個) smb.conf.global.<hostname> 文件必須在接口指令中包括loopback接口。使用與首要主機名對應的 smb.conf.global.<hostname>文件。其它的 smb.conf.global.<hostname> 文件需要 netbios 命名指令設置到主機的其它接口。圖7更加清楚地顯示,這里有一個主機名alpha,是首要的主機名,我們在接口指令中包括loopback接口。主機名beta是另外一個接口,它不是首要主機名,因此我們必須包括 netbios 命名指令beta.

            圖 7: 配置 smb.conf.global.<hostname>

            如果你有 security=domain,有多個接口,并且你運行多個daemon,你需要對每個接口有一個機器帳號。你不能對于機器只使用一個帳號,因為 每個daemon都是獨立的,需要它們自己的機器帳號。問題是加入域的命令不允許你指定其它的配置文件。這里我提供了一些解決的例子,你可以通過重命名文件和使用符號鏈接來解決這個問題。一旦你加入了域,你就不需要維護主機的文件,因為實際運行的daemons可以讓你指定其它的配置文件。

            配置共享

            現在轉到你如何配置共享上, smb.conf.shares.<hostname> 文件包括一個單個共享的模板。很多參數不必要修改,因為它們已經設置為缺省值或者推薦值。僅僅需要考慮的是 共享名共享目錄路徑。下面是一些特殊的限制:

            • 共享名要符合NetBIOS 命名限制,這意味著你只能使用字母和下劃線,并且最多14個字符。
            • 如果你仍然使用Windows NT的話有一個Bug -- 如果共享名超過11個字符它將不會工作。

            在進行配置時要牢記這一點,并考慮你的環境。

            圖8列出了其它常用的各種指令。它們基本上都是自解釋的。如果你想要限制特定的機器或者特定的用戶訪問一個共享,可以使用 valid users 指令。我在實際中發現 hosts allow 指令工作的不是很好,特別是在你使用DHCP或者是遠程用戶的主機名變更時。 最好使用valid users,因為這樣的話,如果用戶挪到不同的機器上時,用戶仍然可以訪問數據。

            圖 8: 配置 smb.conf.shares.<hostname> 文件

            與用戶名和密碼相關問題

            現在我要扯得遠一點。我在這里假定你已經設置了一個類似的協同環境。保證在Windows下和UNIX下有相同的用戶名是很重要的。另外一個重要的考慮是 lmhosts文件。這個文件Samba用來解析NetBIOS名。正常情況下,WINS服務器可以用來進行這個工作,但是根據我們的經驗, WINS服務器的架構并不是很穩定和可靠。事實上,我們經常能夠碰到WINS服務器出問題給我們帶來的麻煩。一個解決這個問題的方法就是在 Samba 服務器上使用 lmhosts 文件。 lmhosts 主要列出你要訪問的域控制器。這也許相當安全,因為域控制器并不經常修改主機名或者IP地址。修改域控制器的主機名和IP地址會導致Windows環境的崩潰。在客戶端創建同樣的 lmhosts文件以避免類似問題也是值得的。我給出Windows下的 lmhosts 文件的路徑(在問題解答節有更詳細的討論)。

            username.map文件是一個把Windows帳號映射到UNIX中不同的名字的一種方法。它的首要用途是把Windows的ClearCase ALBD服務帳號映射到UNIX的有效帳號。缺省的ALBD用戶是clearcase_albd,它的名字很長,你不能在UNIX環境下看到。在過去,用戶名超過8個字符將導致問題。在現在的很多系統中,它一點也不會導致問題,但是這一點你要記住。一個可能的解決方案是把clearcase_albd帳號映射成VOB所有者帳號,因為你知道,VOB所有者有權訪問VOB對象和VOB元素。

            另一個方法是創建一個與VOB所有者帳號同名的ALBD服務帳號,但是我不建議這樣做,因為可能導致安全問題。如果有人能夠作為VOB所有者帳號登陸到Windows,那么他就可以進入VOB做任何VOB所有者想做的事情,這可能是一個很不好的事情。

            最后一個選擇的方法是我們使用的方法:創建一個與VOB所有者帳號類似的ALBD服務帳號。例如,如果VOB所有者帳號是vobadm,你可以使用vobadm01。如果 有人以vobadm01登陸,他不能做任何事情,因為他不是VOB所有者帳號。

            要記住的一點是,這種映射僅僅用于訪問cleartext 和source containers,這就是ALBD 服務為你做的事情。它并不處理正常的 ClearCase訪問控制。如果有人以vobadm01登陸并試圖check out文件,它并不映射為vobadm帳號,仍然是vobadm01帳號。

            很多組織正在轉到大的、合并的環境,就像我們那樣。我們把幾個擁有他們自己服務器的組合并成一個單一的一組服務器。在這種情況下,可能有多個VOB所有者帳號、多個開發環境和多個項目。這時進行帳號映射有一點困難。記住你可以把多個帳號映射到一個單一的UNIX帳號。

            你不能把一個ALBD服務帳號映射到多個VOB所有者帳號。在下面的例子中我試圖把albd1映射到三個不同的帳號,只有最后一個被映射。在圖9的例子中,我試圖把ALBD帳號albd1 映射到vobadmin、ccadmin和 vobadmcc。然而,albd1帳號只能映射到vobadmincc (最后一個定義)。使用vobadmin和ccadmin訪問將出現問題,因為albd1映射到vobadmcc。

            圖 9: 你不能把多個VOB所有者帳號映射到單個ALBD服務帳號

            關于ALBD服務帳號的密碼更新有一些附加的考慮。在我們的環境中,公司的安全策略需要所有帳號的口令每6個月就到期。我們不能得到豁免。當然,如果你的ALBD服務帳號不工作將會出現問題,你的用戶都會down掉。因此我們不得不找到一種處理這個策略的方法。如果你的ALBD帳號永不過期,那當然很好。如果你做不到,那你就應該知道,如果ALBD帳號過期或者被鎖定,將有很多用戶 down掉。

            按照規定,我們必須面對ALBD密碼過期的限制。我們使用ALBD服務帳號索引的方法來保持跟蹤ALBD服務帳號。當密碼快要到期時,我們準備了第二個帳號,這個帳號的密碼是新的,再過6個月才會到期。然后我們在舊的帳號密碼還 有效的時候,把帳號切換到新的ALBD服務帳號上。這樣做的好處是,如果我們切換過去后,其它帳號過期后只會影響很少的用戶,帶來最小的損失。然后,你可以告訴受到影響的用戶:“你需要更新你的ALBD服務帳號”。帳號過期只會給沒有更新的人帶來一點影響。

            如果你使用了帳號索引,記住需要重新配置 username.map 文件。在你切換帳號的時候這一點很重要,你也必須更新Samba。如果你忘記更新 username.map 文件。你將出現訪問的問題。

            從Samba 2.0.x升級到Samba 2.2.x

            Samba 2.0.7是上一個穩定版本,現在2.2 stream已經發布。2.2 stream有幾個性能的問題,直到2.2.7。一個問題是Solaris平臺的,即使當前的發布版本仍有問題,你需要一些補丁來避免CPU高利用率的問題。這個問題的原因是他們修改了他們管理鎖的方法。從使用共享內存改為了使用他們自己的文本數據庫。這個文本數據庫使用 fcntl系統調用和 F_SETLK 來管理鎖。在鎖的數量增加時性能呈指數降低。我沒有實際碰到這個問題,因為我從來沒有使用過Samba 2.2.2,但是我曾經在mailing list中看到過有人碰到過CPU利用率非常高的問題。一旦你的CPU利用率超過75%,一定是一個問題。所有的Solaris版本都有解決這個問題的補丁,因此我建議你使用這些補丁。

            我應該使用哪個版本的Samba? 除了Solaris,你應該使用最新的穩定版本,目前是2.2.8a。如果你使用了圖10的補丁,可以繼續使用2.2.8。如果基于某種原因你不能使用這些補丁,你可以選擇2.0.10a。

            圖 10: Samba Solaris 補丁

            2.2.8a的配置有一些不同,一些以前獨立的文件被合并成一個新的文件。有兩個文件,機器帳號密碼文件(類似于 <domain name>.<hostname>.mac)和 machine.SID 文件(包含安全標識符)。在我的附加文章, SCM04.pdf,中給出了關于如何安裝新版本的Samba、創建新的目錄結構和拷貝舊的配置文件的指導。私有目錄包括機器帳號密碼和機器SID文件。如果你使用共享的 mem size指令的話,你也需要修改配置文件。這個指令在 2.2中取消了,因此你必須注釋掉這個指令。如果你不修改也沒有任何問題,只是會在日志中收到一個錯誤信息。

            你需要做的其它事情是--因為在2.2.x日志的行為改變了-設置調試級別為1以便你得到更多的日志信息。如果你沒有設為1,你只能在你的日志中看到錯誤信息。有時在你想詳細跟蹤問題時,你可能需要有關連接和用戶如何登陸的信息。你當然可以在錯誤發生后設置這個級別,但是你就失去了得到信息的機會。你不得不等到錯誤再次出現或者有用戶試圖登陸。如果你先進行設置,將很容易得到信息。

            在你準備切換Samba時,完成以下步驟:

            1. 停止 Samba.
            2. 重命名目錄
            3. 最后更新私有目錄。(香我說得那樣,這個機器帳號密碼每周更新,但你不知道它什么時候更新,即使你十分鐘前拷貝了,它有可能十分鐘后更新。你只能確保它盡可能的新)
            4. 重起 Samba.

            這個切換過程小于5分鐘,很容易換回來。

            一旦完成切換,你最好驗證一下是否工作正常。你可以登陸到客戶端,連接VOB。更容易的方法是在UNIX機器上使用 smbclient命令(它是Samba發布的一部分)來連接一個共享UNIX。在Windows機器上,可以在命令行輸入net use命令。如果連接失敗,你可以切換回來,查看日志文件以確認問題的原因。

            我們在升級時發現了三個問題。第一個問題是在日志消息中顯示Samba試圖修改信任帳號密碼失敗。問題是在 2.0.7的配置移植到2.2.x時,它并不在文本數據庫中創建用來改變密碼的key。Samba服務器仍然繼續工作,也不影響性能。這是一個潛在的安全問題,因為你的機器帳號密碼沒有改變,但它并不是一個嚴重的問題。一個解決的方法是刪除和重建機器帳號,然后重新加入服務器。這將是破壞性的,因為所有的認證在你刪除帳號時都將失敗,你的用戶都會中斷。然后,你必須重新創建一個機器帳號,并重新把Samba服務器加入到域。我的替代方法是在一個測試服務器上創建了一個 secrets.tdb文件,包括那個key。文件中有其它數據,但是在服務器移植數據時將覆蓋。這個方法似乎更容易一些。

            我們看到的第二個問題是在從2.2.5升級時。你啟動服務器,但是你不能連接。當你查看日志文件時,你看到不能取得信任帳號密碼的消息。這個問題是Key的儲存信息被破壞了。這是一個二進制文件,因此你不能編輯和修復它。最容易的方法是停止Samba。你也可以把信息轉儲到 secrets.tdb文件,或者從舊的安裝復制數據以創建 <domain>.<hostname>.mac文件。在CD上,我也提供了一個小程序用來更容易地轉儲 secrets.tdb文件。一旦你重新創建了 <domain>.<hostname>.mac 文件,Samba服務器將把它合并到 secrets.tdb并創建正確的key。這個問題可能只有少數人會遇見。

            最后一個問題更加困難一些。在升級后,Samba 不能夠正確的解析UNIX文件系統的符號連接。不幸的是,我們只在一臺機器上看到這個問題,并且我不能重現這個錯誤。我用同樣的補丁和相同的配置,但是沒有一點問題。你可以看到一個錯誤"not a valid win32 application" 或者"unable to run exec format error"。在這個例子中,我們試圖訪問文件 syee_test1.bat,因為日志文件中的錯誤消息顯示遺漏了部分路徑。這個問題極其罕見,但是你在升級時要記住。在升級后你需要檢查一下符號連接是否正常工作。

            Samba 和 Rational ClearCase的問題與解決

            日志文件是你的好朋友;你可以從那里得到大量信息,因此你顯然應該知道如何增加調試的級別。調試級別可以從0設到10。0表示幾乎沒有細節信息,10表示有最多的細節。有兩種方法改變調試級別。一種方法是修改 smb.conf文件,改變指令,然后停止再重起Samba。另一種方法是傳遞 HUP信號到Samba daemon。如果你傳遞了一個HUP信號,只有新的連接才能有新的調試級別。我不經常使用這個方法,因為它影響所有的 Samba 客戶端。在你調試時,你通常只想調試特定的客戶端。要想調試一個客戶端,我就進入日志找到特定客戶端的進程ID

            我使用一個配置文件進行設置,模板中有日志文件中包括的進程ID。這個配置文件已經使用了很長時間,大約進行了7、8次修改。我增加信息和選項以便對任何類型的問題都能很容易地調試。在圖11的例子中,PID 是 4539,對2.0 stream,你給進程發一個信號。你發一次信號只能增加一個調試級別。如果你想增加2或3個級別,你只能發2到3次信號。對于 2.2.x,他們包括一個實用程序可以讓你設置任何級別,這會更容易一些。

            圖 11: 調試Samba

            圖12顯示我經常碰到的錯誤。我曾經在一個ClearCase 用戶組看到這個問題。這大概是你最常碰見的問題:你得到一個信息:"Unable to construct cleartext for object X in VOB Error: Type manager 'text_file_delta' failed construct_version operation." 這幾乎都歸結為許可問題。有意思的是你能夠碰到多少種許可問題。另一個用戶經常碰到的問題是,錯誤消息:"incorrect function",經常可以在視圖日志和視圖主機上看到。這個信息也可以在彈出式對話框中出現。

            圖 12: 最常見的錯誤

            我們怎么樣才能跟蹤到問題在什么地方?你需要做的第一件事情就是,你需要知道ALBD 服務帳號名。你可以通過services控制面板找到它。然后你問自己, 這個服務帳號是否有相應的UNIX帳號? 如果是,你可以進行下一步。如果沒有,它大概被映射了,因此你要查看 username.map 文件。如果那里沒有,你要加上它。在你加上以后,新的連接將使用新的值,但是已經存在的連接則不會。有問題的客戶端應該與VOB斷開,等幾分鐘到Samba連接刪除,然后再連接到VOB。讓用戶啟動一次很容易。當然你也可以停止然后重新啟動Samba,但是這樣要影響所有用戶,而不是只影響有問題的用戶。

            UNIX帳號是否有權限?這里假定ALBD服務有一個UNIX帳號,或者映射了合適的帳號。 這個帳號能否訪問VOB存儲目錄和子目錄? 我看過很多次,他們的VOB目錄的UNIX權限類似700或者 750,這將使得只有很少的用戶可以訪問VOB中的數據。解決的方法很簡單,給VOB目錄設置正確的權限。如果問題在pool自己身上,你必須使用 cleartool protectvob 命令來修正。你一定不想用UNIX命令來修改這一堆權限。

            其它的事情也會發生,比如你基于某種原因,你限制了某些組的權限。你必須保證由ALBD使用的UNIX帳號在正確的組中。如果你遇見了問題,你要修改權限或者把用戶添加到正確的組中。

            訪問VOB或者訪問共享的難點

            即使上面的都可以通過,你仍然會遇到不能訪問VOB數據的問題。有很多其它的因素會導致錯誤。典型地,你下一步需要做的是,增加調試級別,以便得到更多的相關信息。我通常做的第一步是不通過ClearCase,試著訪問共享目錄,以保證網絡部分工作正常。我使用net use命令試著訪問共享。在這里你肯定希望看到錯誤。如果用戶指定了錯誤的密碼,你可以在Samba日志中清楚地看到。它說:"NT_STATUS_WRONG_PASSWORD"。這經常發生在用戶剛剛修改了密碼但是沒有重新登陸時。解決方法很簡單,退出并重新登陸。

            如果用戶修改了密碼并用錯誤的密碼試圖登陸很多次后,用戶帳號可能被鎖定。日志中的錯誤消息也很明顯地指出,帳號被鎖定。你只需要等幾分鐘,到帳號釋放,或者如果它不工作你問用戶是否重設了他們的密碼。

            一個很難調試的權限的限制是,如果你使用了 valid users或者hosts allow 指令,這些指令我在前面提過,它們只允許特定的用戶或者主機連接。如果你在使用net use命令要求輸入密碼時輸入了正確的密碼,但是命令仍然失敗,你就必須查看共享配置文件,看是否限制了共享。如果有共享的限制,你就需要研究哪些用戶或者機器有權限。你必須增加調試級別到5級才能看到這個錯誤。

            在圖13的例子中, smbd daemon 在SUPPORT_USERS中尋找我的userid, boehm。我的userid沒有在組中,因此我沒有訪問共享的權限。

            圖 13: VOB 和共享訪問權限

            其它可能發生的事情有-- 有意或者無意的 -- 用戶帳號被刪除或者不存在。這時我試圖訪問一個共享時,他們將做為用戶 "nobody",沒有訪問共享的權限,然后操作將失敗。你可以在日志中看到錯誤指示(圖14),boehm-1做為nobody連接到服務器ccaserls。代替用戶boehm,它用nobody。這就是一個UNIX帳號丟失的例子。

            圖 14: 用戶帳號不存在或者被刪除

            我們在使用WINS服務器時仍然會遇到其它問題。用戶可能訪問VOB,工作得很好,突然,他們不能訪問VOB了。我們發現這時WINS服務器可能出問題了,或者我們從WINS服務器中得到錯誤的VOB服務器的入口。這一點很糟糕,我們的解決方法是,雖然不是很好的方法, 在客戶端創建包括VOB 服務器入口的 lmhosts文件。這可以幫助加速訪問VOB服務器,因為客戶端不需要等待WINS告訴它VOB服務器的地址。另外,這時不應該頻繁改變VOB服務器的主機名或者IP地址。這個方法的不利之處就是如果你在每個客戶端都創建文件的話,工作量將會很大,而且你必須保證新的客戶端也能很好地更新。我們可以把這個問題放到ClearCase的安裝過程中,作為其中的一步。在安裝時創建正確的入口文件。

            你需要創建的文件位于 %SystemRoot%\SYSTEM32 目錄。這個目錄下有一個示例 lmhosts.sam文件。在圖15中,我給出了我以前用過的 lmhosts 文件,#PRE 告訴機器把主機名預先加載到緩存中,這樣可以更快一點。

            圖 15: 一個lmhosts文件的示例

            另外一個你可能遇見的錯誤是Samba服務器機器帳號損壞。這時,如果你使用 net use命令登陸,你輸入正確的密碼,但是仍然不工作,你可以在日志文件中看到類似"NT_STATUS_NO_TRUST_SAM_ACCOUNT" 或者 "NT_STATUS_ACCESS_DENIED"的信息。這個問題稍微大一些,因為它影響所有的用戶,不僅僅影響一個客戶端。這時你一般在域控制器上沒有任何權限來修復機器帳號,這時必須設置'security=server'直到你可以得到一個修復的帳號。一旦修復,你可以重新加入域,然后重起Samba。這一般需要導致2-3分鐘的不可用。

            最后一個錯誤是你不應該看見的。"Out of file structures" 錯誤在使用32-bit Samba時試圖打開太多文件時經常發生。如果你使用了64-bit Samba 和版本2.2.x的話,你不應該看到這個錯誤。

            需要注意的一點是Rational的文檔仍然設置mnodes到800。我曾經設置過更多的值沒有任何問題。

            解決這個問題的方法是增加'max open files' 并使用64-bit Samba。如果你使用32-bit Samba,增加'max open files'的值沒有用處。如果你不能使用64-bit Samba,那你就不得不減少mnode設置。在ClearCase 控制面板下的 MVFS performance可以修改。你可以從800開始。你甚至可以減少到200。如果你仍然有問題,就像我最初開發這個補丁時那樣,你就必須使用64-bit版本的Samba。

            最后一個問題更加罕見,或者應該罕見。Samba 2.0使用共享內存表管理鎖。在有100-200個客戶端時很容易超出這個表的大小。缺省的大小大約是1M。在我使用的配置文件中,我把它設置為4M。即使這樣,一旦你超過了100個客戶端或者更多,它很容易超出4M的水平,然后你將會看到類似"panic error, delete share mode hash bucket empty"的信息。這特別令人沮喪,因為用戶將會發現他們前面還能讀的文件現在不能讀了。他們可能重起他們的機器或者重起他們的視圖。然后他們可以讀這個文件,但是他們又不能讀以前可以讀的其它文件了。這依賴于共享內存多快地填滿,以及他們在填滿的時刻訪問哪個文件。

            解決的方法是增加共享 mem size 指令。當然這是在2.0,在2.2中應該沒有這個問題。如果你增加了這個參數,你或許必須增加kernel參數。Solaris的kernel參數是 shmsys:shminfo_shmmax。HP-UX有類似的設置。為了讓改變的kernel參數生效,你必須重起系統,這將更糟糕。

            如果由于某些原因,你設置kernel參數足夠高,你需要知道的一件事情是,如果你修改了它的大小,你必須刪除存在的共享內存。這是由于Samba代碼會看內存表是否在,如果找到共享內存,它將試圖使用錯誤的大小。圖16顯示移去共享內存的命令。

            圖 16: 增加共享內存大小的指令

            問題與解答

            如果你不能使用64-bit Samba的話該怎么辦?

            解決方法是打開Rational ClearCase 控制面板。有一個名為 MVFS Performance的tab,有兩個檢查框( maximum number of mnodes to keep in the VOB free list 和 maximum number of mnodes to keep for the cleartext free list)。你可以手工把它們改為800,你必要時可以減少到200。

            你的Samba配置的例子是Windows NT-centric。在Active Directory環境下有什么變化?

            問題是關于在Active Directory 環境下的PDC (主域控制器) 和 BDC (后備域控制器)的。

            我不知道你需要的改變 -- 我的意思是,你在Active Directory中仍然有域控制器,因此你仍然需要有密碼服務器,不管你的active directory服務器在哪里。我不知道Active Directory中是否仍然使用WINS服務器。但我相信它仍然使用。因此你即使在active directory環境下仍然需要這些信息。

            Samba日志保存在什么目錄?

            如果安裝在/usr/local/samba,日志文件在/usr/local/samba/var。日志文件名為 log.<machine name>.

            在多個ALBD帳號時我們如何處理密碼過期?

            我們有我們自己的工具更新客戶端,但是最容易通用安裝方法是到發布區域更新 sitedefs.dat文件,這個文件包含加密的密碼。你也可以再次運行 siteprep.exe,提供一個新的密碼。它會更新文件,然后用戶重新安裝ClearCase以更新密碼

            64-bit Samba 是否需要64-bit 操作系統?

            是的。你必須運行在Solaris 7 (64-bit)及以上,或者HP-UX 11.

            如果你運行64-bit Linix 是否會出現問題?

            不會,因為Linux不會碰見這個問題。它們的設置不同,在LINUX下使用 fopen系統調用時不會遇到這個問題,有一些kernel調整可以讓你設置Linux 允許打開足夠的文件。

            緩存問題 -- 服務器數據已經變更,但是客戶端幾分鐘后才能看到

            問題是有人在Solaris服務器上進行了變更,但是客戶端直到幾分鐘后才能看到。這個問題可能是配置文件的問題,在我的配置文件中有一個選項op locks,ClearCase使用 op locks=Off。它會緩存一些東西,有可能導致問題。我不知道你的設置是什么,但這是我要解決問題的第一個猜想。

            如果你有用戶登陸到多個windows域,多daemons是否需要考慮這個問題?

            可以有一種方法處理。我們在我們的環境中有多個daemons,但是我們不需要尋址它們因為在不同的域之間有信任關系。你的問題可能是一個域中的人試圖登陸,但他們不能認證,如果他們引用了錯誤的域控制器(那里他們的帳號不存在,即使有信任關系)。一個解決方法是在一個域中有一個機器帳號接口,另一個域中有另外一個機器帳號接口。

            我怎么處理UNIX帳號同步?

            這不是一個問題,因為所有的UNIX帳號都通過NIS處理。如果一個UNIX改變了,它由NIS處理。認證并不真正發生在UNIX一邊。如果我做為用戶boehm連接到Samba服務器,它只是在UNIX邊看用戶是否存在。如果存在,它就通過域控制器的認證請求,從來不會涉及UNIX一邊。

            有人看到這樣的Samba問題,在用戶增加是,他們不得不停止并重起Samba?

            我從來沒有見到這樣的問題。我知道在早于2.2的版本會有一些問題。我相信在2.2.8a版本已經修正了問題。如果你仍然有這樣的問題,我不知道如何幫你。它可能與操作系統有關,但我知道在早于2.2的版本有內存泄漏。

            你是否認為Samba比TAS要好?

            是的。我考慮過TAS。我想我不喜歡license費用。我們的組織有其它部門是用過TAS,其中一個站點出現問題。他們不能正確地認證用戶,因為他們沒有權限。我們聯系技術支持,但是我們沒有從他們那里得到滿意的結果。上千個用戶不能正常工作。幸運的是,我們能夠在幾分鐘內切換到Samba。我花時間創建了配置文件。我們切換過去,他們很高興。我們最近在巴西也遇到類似的事情,那里的TAS也不能正常工作,出一些奇怪的現象。我們又一次不能從技術支持那里得到結果,因此我們切換到Samba,然后就很好了。

            在我的觀點中Samba好一點的另一件事情是: valid usershosts 。我可以使用NIS netgroups確定誰可以訪問我的服務器。在TAS中你不得不在每個TAS服務器上手工編輯所有用戶ID的列表。在RTP,我有8臺服務器。我不想早服務器上編輯8個文件,并保持他們的同步。

            在客戶端使用PC NFS 并確定哪個協議用來訪問VOB服務器時是否會有問題?

            不會的,ClearCase文檔中寫的很清楚。我相信它能夠告訴你如何確定。你要做的是進入服務控制面板,找到properties,那里有服務提供的瞬息。它看起來可能是"Microsoft Windows Network", "Hummingbird Network",如果你使用Hummingbird Maestro,會有一些其它選項。你可以改變協議的順序,以便你可以把"Microsoft Windows Network"放在NFS協議前面,這樣將使用Samba代替NFS。我在調試問題的時候做過類似的事情:我想要強制使用NFS,因此我改變順序,把NFS放在Microsoft Windows Network前面。

            Samba服務器的容量如何?

            我們有的最大的一個前面已經講過。我們在加拿大有一個單一的機器為大約上千人服務。大概600或者更多的人是Samba 或者PCs 或者Samba 用戶。它是一臺Enterprise 6500,擁有8個處理器。我從來沒有碰見用戶數太多不能支持的Samba問題。我傾向于使用多個VOB服務器因為我喜歡配置更好的性能。這樣我通常有2-4個服務器每個支持幾百個用戶。我在使用這個配置的時候從來沒有遇見Samba的性能或者容量問題。

            我可以把Samba放到VOB服務器上嗎?

            是的,你可以這么做。


            關于作者

            Stephen Beneteau 是Rational軟件的軟件開發人員, Rational軟件是IBM Software Group 的幾個品牌之一。IBM 是世界上最大的信息技術公司和最大的商業和技術服務供應商。Rational 軟件在開放的業界標準工具,最佳實踐和商業應用開發服務,軟件產品和系統構建,包括嵌入式設備軟件如蜂窩電話和醫療器械等方面每年提供$90億的收益。

            posted @ 2011-10-26 08:35 tqsheng 閱讀(275) | 評論 (0)編輯 收藏

            利用 LDAP 實現 IBM Rational ClearCase 和 ClearQuest 集成開發環境下的賬號統一管理

            利用 LDAP 實現 IBM Rational ClearCase 和 ClearQuest 集成開發環境下的賬號統一管理

             

            馬 玲, 軟件工程師, IBM
            易 傳佳, 軟件工程師, IBM

             

            簡介: Rational ClearCase 和 DB2 都借助于操作系統的賬號,Rational ClearQuest 則有自己的一套用戶管理系統,在集成開發環境中,對于用戶和管理員來說,都比較復雜。本文實現用 Windows LDAP 集中管理和認證 ClearCase 多個平臺的賬號,以及 ClearQuest 和后臺使用的 DB2。這樣方便管理和維護,對于開發和測試人員來多個用戶和密碼也合并為一個。

             

            發布日期: 2009 年 8 月 28 日
            級別: 初級
            訪問情況 : 1030 次瀏覽
            評論: 1 (查看 | 添加評論 - 登錄)

            平均分 4 星 共 4 個評分 平均分 (4個評分)
            為本文評分

             

            簡介

            IBM Rational ClearCase(以下簡稱 ClearCase)是業界非常優秀的軟件版本控制工具和軟件資源配置管理工具;IBM Rational ClearQuest(以下簡稱 ClearQuest )是用于軟件變更管理和缺陷跟蹤的工具。在實際的軟件產品開發過程中,兩者的結合使用,提供了真正用于加速軟件開發周期和流程的解決方案,會極大地提高開發效率,保證產品的質量。

            隨著開發團隊的擴大,人員的變動,以及開發平臺的的多樣化(Windows、Linux、Unix……),賬號管理的問題日益突出。本文介紹怎樣合并 ClearCase 的域賬號和 ClearQuest 帳號,實現用一套 MS LDAP 系統支持 ClearCase,ClearQuest,以及后臺 DB2 的認證。


            現有問題

            ClearCase 借助于操作系統的帳號,并且 Windows 機器需要加入域才能使用,這樣 ClearCase Window 平臺使用 Windows AD 域來管理賬號,Clearcase Linux 則使用操作系統的賬號。ClearQuest 有自己獨立的一套用戶管理系統,用戶信息存儲在后臺的用戶數據庫中。ClearQuest 后臺 DB2 的用戶認證,也是由操作系統負責的。這樣在一個 ClearCase 和 ClearQuest 集成的環境中,就需要管理三套用戶數據(域,操作系統,ClearQuest 用戶)。

            對于一般的開發人員來說則至少要記住 ClearCase Windows 域,Linux/Unix 操作系統的 和 CQ 三套用戶名和密碼,出于安全考慮還需要定期的修改密碼,這對用戶來說也是一個很大的負擔。

            當開發人員的帳號需要創建,權限更改,或者刪除時,重復的用戶操作至少要在 ClearCase 和 ClearQuest 兩邊進行。

            ClearCase 賬號管理的復雜性:如果訪問的 code 存儲在不同的ClearCase Vob 服務器上,就需要在多個 Linux Clearcase Vob 服務器上對用戶進行操作,同樣的操作還得在 ClearCase Linux/Unix 客戶端執行。

            ClearQuest 賬號管理復雜性:對于 ClearQuest 管理員來說,不同的項目,可能使用完全獨立的 ClearQuest 模式庫,一個模式庫,對應一套用戶系統,這樣 ClearQuest 的賬號管理本身也不可避免的有重復。


            本文的目的

            Windows 活動目錄域服務器,本身已經具有 LDAP 功能,可以管理 Windows 域賬號,本文擴展域服務器,為用戶增加 Unix 屬性,這樣 Linux/Unix 機器上的帳號也使用 AD 域來管理。再介紹如何配置 ClearCase Linux/Unix 機器,以及 ClearQuest 和后臺的 DB2 使用該 AD 域進行 LDAP 認證。這樣,多個賬號管理系統都合并為一套 LDAP 系統,當用戶信息改變時,所有系統都可以映射得到最新改動,減少了維護成本。

            在開發過程中,如果不使用 LDAP 來集中管理,就會出現上述的多個問題。如下圖 1 是 Rational ClearCase、ClearQuest、BuildForge 以及 DB2 利用 LDAP 進行認證的應用場景。本文將分別來介紹每一種應用怎么實現與 LDAP 進行認證。


            圖 1. 軟件開發集成環境下的應用拓撲和用戶管理
            圖 1. 軟件開發集成環境下的應用拓撲和用戶管理

            LDAP 域基本信息和組織結構

            LDAP 中的信息是是按照樹型結構組織的,具體信息存儲在 Entry 條目數據結構中。條目相當于關系數據庫中表的記錄;DN(Distinguished Name)是用來引用條目的,DN 相當于關系數據庫表中的關鍵字(Primary Key)。每一個條目有多個屬性,屬性是由類型(Type) 和一個或多個值 (Values) 組成,相當于關系數據庫中的字段 (Field) 由字段名和數據類型組成。

            在下面的配置中,DC 指一條記錄所屬區域;OU 指一條記錄所屬組織;CN/UID 指一條記錄的名字或 ID。

            LDAP 的信息是以樹型結構存儲的,在樹根一般定義國家(C=CN)或域名(DC=COM),在其下則往往定義一個或多個組織單元(Organizational Units)簡稱 OU。不同的用戶可以歸屬于不同的組織,例如,在本文中,需要支持 ClearCase、ClearQuest、DB2 還有其它應用 BuildForge 等的認證。所以在規劃上,可以將這些用戶和相關組織到不同的 OU,在域中體現為不同的目錄。如下圖 2 所示。


            圖 2. LDAP 中多個應用對應不同的目錄
            圖 2. LDAP 中多個應用對應不同的目錄

            配置過程中要用到的 LDAP 基本信息如下表 1 所示。


            表 1. LDAP基本信息
            LDAP 服務器名字 cdlcc02.cn.ibm.com
            服務端口號 389
            是否允許匿名連接 Yes
            用戶查詢的目錄入口
            如果不指定則從根部查詢,性能會降低
            CC 和 CQ:
            ou=cdl_cc Account,dc=cn,dc=ibm,dc=com
            ou=cdl_cc Group,dc=cn,dc=ibm,dc=com
            DB2 :
            ou=cdl_cc DB2,dc=cn,dc=ibm,dc=com
            查尋的范圍 sub
            存儲用戶登陸名的LDAP 屬性. sAMAccountName
            LDAP查詢過濾條件 sAMAccountName=%login%


            擴展域服務器

            AD 域是 LDAP 的一種,域服務器的安裝和配置請參考其他資料,下面以 Windows 2003 R2 為例,介紹如何擴展該域,增加 Unix 屬性頁面。

            擴展 AD 域的 Schema

            在 AD 域已經安裝和部署完成的情況下,還需要擴展增加 Unix 屬性部分,首先在域服務器上安裝 Identity Management for UNIX 組件。

            插入 Windows R2 第二張光盤,從添加/刪除程序 -- 增加/刪除 Windows 組件(雙擊進入它)-- 選擇安裝 ”Active Diectory Services” 見圖 3 所示。


            圖 3. 安裝 Active Diectory Services
            圖 3. 安裝 Active Diectory Services

            下一步如圖 4 所示,選擇 Identity Management for UNIX 組件。


            圖 4. 安裝 Identity Management for UNIX 組件
            圖 4. 安裝 Identity Management for UNIX 組件

            用戶的 UNIX 屬性

            安裝了 Identity Management for UNIX 后,域用戶的管理窗口中會增加一個 UNIX Attributes 的屬性頁,可以在這里指定 Linux/Unix 用戶的 UID,Login Shell,HomeDiectory 和 Primary group(主組),如圖 5 所示。


            圖 5. 用戶的 Unix 屬性
            圖 5. 用戶的 Unix 屬性

            ClearCase使用 AD 域來管理帳號

            ClearCase 本身不管理自己的用戶和用戶組賬號,ClearCase 的用戶管理依賴于操作系統,通過用戶在操作系統中的登錄識別用戶,并由此確定用戶是否具有進行 ClearCase 操作的資格。ClearCase 推薦使用域來管理操作系統的賬號,ClearCase 與域的密切關系主要是與 ClearCase 的訪問控制有關。

            用戶的所屬組可以有多個,可以指定其中的一個作為該用戶的主組,在 ClearCase 環境里,可以設定所有用戶的主組相同,指向同一個組,比如 ccusers。主組在不同的操作系統上實現的方式不同,在 Linux 和 Unix 系統里,主組在網絡信息系統(NIS,Network Information System)passwd 數據庫中定義,對于為 Windows,創建用戶的域賬號的時候,就指定了主組,域賬號的信息存儲在與服務器的數據庫中。

            當以某一用戶 ID 登錄到安裝了 ClearCase 的系統主機上以后,這個用戶 ID 就已經決定了某種信任,這種信任是可以控制用戶對于 VOB 和 View 中的 Element 的訪問控制權限。簡單地說,就是以什么樣的用戶登錄系統,就具備了已經賦予了該用戶的所有訪問控制權限。

            配置 ClearCase 主機使用 LDAP 認證

            Windows 用戶使用域賬號登陸,非常簡單,只需要設置 Primary_Group 環境變量。

            Linux/Unix 用戶要使用 LDAP 域進行認證,需要按照下面步驟進行配置。

            本文以 Redhat 系統為例,但本文的方案不限于 Linux 及 Unix 平臺,作者已經成功地配置了其他 Linux,SuSE,Ubuntu,Mac,AIX 等機器使用 LDAP 進行用戶認證。

            下面步驟中園括號內的文字均為注解。

            1. 首先確認 OS 已經已經安裝以下包。
            pam_krb5
            krb5-libs
            krb5-workstation
            openldap-clients
            nss_ldap
            

            1. 同步時鐘。

            可以選擇配置本地時間服務器和外部 internet 時間同步,也可以自己內部搭建一個時鐘服務器,本文選擇去同步 IBM 的時鐘服務器(timeserver.raleigh.ibm.com),所有使用 LDAP 認證的機器要求和 LDAP 服務器的時間一致,否則 LDAP 連接查詢會失敗。

            (1)cat /etc/ntp.conf
            server timeserver.raleigh.ibm.com
            driftfile /var/lib/ntp/drift
            (2)/etc/ntp/ntpservers (清空舊的時間服務器)
            (3) cat /etc/ntp/step-tickers  
            timeserver.raleigh.ibm.com
            

            1. 配置 kerberos。
            cat  /etc/krb5.conf
            [logging]
             default = FILE:/var/log/krb5libs.log
             kdc = FILE:/var/log/krb5kdc.log
             admin_server = FILE:/var/log/kadmind.log
            [libdefaults]
             default_realm = CN.IBM.COM
             dns_lookup_realm = false
             dns_lookup_kdc = false
             ticket_lifetime = 24h
             forwardable = yes
            [realms]
             CN.IBM.COM = {
              kdc = cdlcc02.cn.ibm.com:88(server 地址)
              admin_server = cdlcc02.cn.ibm.com:749
             }
            [domain_realm]
             cn.ibm.com = CN.IBM.COM
             .cn.ibm.com = CN.IBM.COM
            [kdc]
             profile = /var/kerberos/krb5kdc/kdc.conf
            [appdefaults]
             pam = {
               debug = false
               ticket_lifetime = 36000
               renew_lifetime = 36000
               forwardable = true
               krb4_convert = false
             }
            

            1. 配置 Pam,指定用戶的認證方式。
            cat  /etc/pam.d/system-auth (根據你現有的配置,再增加斜體部份即可)
            #%PAM-1.0
            # User changes will be destroyed the next time authconfig is run。
            auth        required     pam_env.so
            auth        sufficient    pam_unix.so nullok try_first_pass
            auth        requisite     pam_succeed_if.so uid >= 500 quiet
            auth        sufficient    pam_krb5.so use_first_pass (使用 kerbers 方式認證)
            auth        required     pam_deny.so
            auth        required     pam_tally.so onerr=fail deny=5
            account     required      pam_tally.so
            account     required      pam_unix.so broken_shadow
            account     sufficient    pam_succeed_if.so uid < 500 quiet
            account     [default=bad success=ok user_unknown=ignore] pam_krb5.so (設置如果 ldap servser 
                                                                            不可以用,采用本地 root 登錄)
            account     required      pam_permit.so
            password    required      pam_cracklib.so retry=3 minlen=8 dcredit=0 ucredit=0 lcredit=0 
                                                      ocredit=0 type=
            password    sufficient    pam_unix.so md5 shadow nullok use_authtok md5 shadow remember=7
            password    sufficient    pam_krb5.so use_authtok
            password    required      pam_deny.so
            session     optional      pam_keyinit.so revoke
            session     required      pam_limits.so
            session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
            session     required      pam_unix.so
            session     required      pam_mkhomedir.so skel=/etc/skel umask=002(為第一次登錄的用戶創建 home 目錄)
            session     optional      pam_krb5.so
            

            1. 設置 LDAP 查詢的相關信息,包括查找范圍,方法等。
            cat /etc/ldap.conf
            bind_policy soft
            host 9.125.240.48 (ldap server ip 或 host 都可)
            base DC=cn,DC=ibm,DC=com
            scope sub (搜索的類型)
            timelimit 30
            binddn ldapadmin@cn.ibm.com(連接的用戶名和密碼,最好用域管理員的,有權限遍歷整個 LDAP 目錄)
            bindpw Password1
            nss_base_passwd OU=CDL_CC Account,DC=cn,DC=ibm,DC=com?sub
            nss_base_shadow OU=CDL_CC Account,DC=cn,DC=ibm,DC=com?sub
            nss_base_group OU=CDL_CC Group,DC=cn,DC=ibm,DC=com?sub
            nss_map_objectclass posixAccount user
            nss_map_objectclass shadowAccount user (ldap client 和 server 類型的轉換)
            nss_map_attribute uid sAMAccountName
            nss_map_attribute homeDirectory unixHomeDirectory
            nss_map_attribute shadowLastChange pwdLastSet
            nss_map_objectclass posixGroup group
            nss_map_attribute uniqueMember member
            nss_map_attribute gecos cn
            pam_login_attribute sAMAccountName
            pam_filter objectclass=User
            

            1. 設置開機讀取用戶的順序。

            修改 /etc/nsswitch.conf,表示先本地用戶信息庫查找再 LDAP。

            passwd:     files ldap
            shadow:     files ldap
            group:      files ldap
            

            1. 測試配置。
            # getent passwd
            # getent group
            

            如果你使用以上兩個命令能得到你的所有的域用戶和組,恭喜你所有配置完全正確,你就可以使用域用戶去登錄你的 Linux 主機了。

            配置 ClearCase Vob 服務器上的 Samba

            如果 Linux 機器要作為 VOB 服務器,以 Samba 方式共享數據,不僅要按照上一節配置成為 LDAP Client,還需要執行下面的配置才能使 Samba 工作。

            Samba 認證有多種方法,本文使用 Domain 來認證,該方法需要將 Samba 服務器加入域。

            1. 設置 Smaba 的認證方式為 Domain
            Global parameters
                    security = domain
                    workgroup = CDL_CC(域服務器的 netbios 名)
            

            1. Samba加入域
            net rpc join –S cdlcc02.cn.ibm.com –U domainadmin

            1. 測試加入域是否成功
            net rpc testjoin
            # net rpc testjoin
            Join to 'CDL_CC' is OK
            


            配置 ClearQuest 使用LDAP認證

            ClearQuest 有自己的一套用戶管理系統,用戶和組信息存儲在后臺的用戶數據庫(User DB)中 ClearQuest 支持使用 LDAP 來認證,除了 Solaris,其他大多數平臺都支持。這樣,開發人員只需要記住域賬號和密碼,用域賬號就能登陸 ClearQuest。

            配置 ClearQuest 啟用 LDAP

            運行 installutil 命令 從命令行可以直接配置。

            第一步:設置認證算法為 CQ_ONLY,在改變認證方法前,先設置認證算法為 CQ_ONLY,這樣在配置期間阻止 LDAP 用戶登陸。

            installutil setauthenticationalgorithm dbset_name cq_user 
                                                   cq_password CQ_ONLY
            installutil setauthenticationalgorithm 7.0.0 admin password CQ_ONLY
            

            第二步:設置 ClearQuest LDAP 連接信息,-h LDAP 服務器主機名;-p 端口,默認是 389;-D 允許匿名連接時的查詢賬號;-w 查詢賬號的密碼。

            installutil setldapinit dbset_name cq_user cq_password
                                "-h <A> -p <B> -D <C1> -w <C2>"
            
            installutil setldapinit 7.0.0 admin password "-h 'cdlcc02.cn.ibm.com' -p 389 -D 
                         cn=ldapadmin, ou=CDL_CC Account, dc=cn, dc=ibm, dc=com -w Password1"
            

            第三步:LDAP 查詢標準設置。

            -b 開始查詢的 BaseDN-s 查詢的范圍;過濾條件中,sAMAccountName 是存儲用戶登陸名的 LDAP 屬性。

            installutil setldapsearch dbset_name cq_user cq_password 
                                                    "-s <E> -b <D> <G>"
            installutil setldapsearch 7.0.0 admin passsword "-s sub -b ou=CDL_CC Account, dc=cn, 
            dc=ibm, dc=com (&(objectCategory=person)(sAMAccountName=%login%)
            (!(userAccountControl:1.2.840.113556.1.4.803:=2)))"
            

            第四步:設置 ClearQuest 和 LDAP 的對應關系。

            ClearQuesr 可以映射的用戶屬性有 CQ_EMAILCQ_FULLNAMECQ_LOGIN_NAMECQ_MISC_INFO,或者 CQ_PHONE,相應的 LDAP 中也有多個屬性,只要是可以一一對應的就可以。

            下面的例子是通過 ClearQuest 的登陸名與 Windows 域服務器中的用戶屬性 sAMAccountName 進行映射。

            installutil setcqldapmap dbset_name cq_user cq_password cq_user_field <H>
            installutil setcqldapmap 7.0.0 admin password CQ_LOGIN_NAME sAMAccountName
            

            第五步:驗證 LDAP 配置信息。

            測試用戶名是 test_user,LDAP 密碼是 test_pwd

            installutil validateldap dbset_name cq_user cq_password <I> 
            <J>
            installutil validateldap 7.0.0 admin password test_user test_pwd
            

            第六步:設置認證算法為 CQ_FIRST

            Usage: installutil setauthenticationalgorithm dbset_name cq_user 
                                                                      cq_password CQ_FIRST
            

            第七步:以上步驟完成后,下來為一個用戶設置認證模式

            在如下圖 6 中,LDAP 認證打上勾,表示為該用戶啟用 LDAP,在 LDAP Login 欄輸入用戶的登陸名,因為本文前面已經設置使用 ClearQuest 登錄名和 LDAP 中存儲用戶登陸名的屬性 sAMAccountName 進行映射。


            圖 6. ClearQuest用戶屬性
            圖 6. ClearQuest用戶屬性

            ClearQuest 使用 LDAP 的認證過程

            當 ClearQuest 配置為使用 LDAP 認證時,CQ 不僅要通過 LDAP 查詢,還需要后臺用戶數據庫檢查,順序如圖 7。

            CQ 首先檢查是否在用戶數據庫中有這樣的一個用戶,然后利用上面第三步設定的查找條件在 LDAP 中查找,LDAP 會驗證密碼,最后獲取第四步中設置的 LDAP 屬性值和 CQ user DB 中的進行比較。


            圖 7. ClearQuest 配置為 LDAP 后的認證流程
            圖 7. ClearQuest 配置為 LDAP 后的認證流程

            如果你的角色是ClearQuest管理員,你應該認識到,ClearQuest 在配置使用 LDAP 認證時,本身仍需要維護自己的用戶數據庫,在認證過程中,用戶信息必須存儲在 LDAP 和后臺數據庫兩邊,并且匹配,密碼使用的是 LDAP 中的信息,這些對于 CQ 用戶是透明的,所以對最終的 ClearQuest 用戶來說,還是方便很多。


            配置 CQ 后臺 DB2 數據庫使用 LDAP 認證

            在大多數的應用場景中,數據庫都是處于應用的最底層,用戶面對的最上層的應用,比如 Apach、Websphere 等都可以進行簡單的配置利用 LDAP 來認證,但后臺數據庫的認證還是使用數據庫本身提供的方式。

            DB2 常用的認證方式是借助于操作系統的用戶和組信息的,如果操作系統配置為使用 LDAP 來認證,理論上 DB2 可以對此配置視而不見,因為 DB2 只是和操作系統之間進行對話,但是,DB2 不象其他應用可以識別 Pam,不能透明的使用操作系統改變后的配置,所以仍舊需要對 DB2 進行配置以支持 LDAP。

            為了便于系統賬號集中管理,下面介紹如何配置 DB2 9.1 on Linux,使其可以通過利用 DB2 9.1 自帶的 LDAP 插件,實現 LDAP 認證。

            在 DB2 服務器端應用 LDAP

            1. 獲得插件

            DB2 從 8.2 以后支持 LDAP,下載后分別將三個插件放到相應的目錄,并且確保文件屬性。

            DB2 9.1 及更高的版本在安裝完后會自帶這些插件。

            存儲目錄:INSTHOME/sqllib/security32/plugin

            LDAP 插件的下載地址參見參考資料

            1. 更新服務器參數

            首先更新 DB2 服務器的相關參數,更新完成后,數據庫就會按照配置文件指定的方式通過 LDAP 來認證用戶和組。

              Server: UPDATE DBM CFG USING SRVCON_PW_PLUGIN  IBMLDAPauthserver
              Client: UPDATE DBM CFG USING CLNT_PW_PLUGIN    IBMLDAPauthclient
              Group:  UPDATE DBM CFG USING GROUP_PLUGIN      IBMLDAPgroups
            

            1. 配置文件指定 LDAP 相關參數

            配置文件(IBMLDAPSecurity.ini),指定了 DB2 通過哪種方法去哪里尋找用戶和組。

            一般情況下,配置文件在 Windows 和 UNIX 上分別存儲在以下位置,也可以通過環境變量 DB2LDAPSecurityConfig 來指定別的位置。

            UNIX:    INSTHOME/sqllib/cfg/IBMLDAPSecurity.ini
            Windows: %DB2PATH%\cfg\IBMLDAPSecurity.ini
            

            1. 以 MSAD 為例說明配置文件中的主要條目

            (1) 服務器端相關值

            比如 LDAP 服務器的名字,可以指定多個,使用空格隔開,host1[:port] [host2:[port2] ... ],端口不說明則使用默認的 389。

            LDAP_HOST = cdlcc02.cn.ibm.com

            (2) 用戶相關值

            用戶在 LDAP 中對應的對象類 USER_OBJECTCLASS(MSDA 是 user)。USER_BASEDN 指定從目錄樹的那個入口開始查找,可選的,如果不指定,則會從根部開始遍歷整個目錄樹,MSDA 要求必須指定。USERID_ATTRIBUTE,指 LDAP 中代表用戶 ID 的用戶屬性,該屬性將和 USER_OBJECTCLASSUSER_BASEDN 構成一個用戶查詢,MSAD 中,該值是 sAMAccountName

            AUTHID_ATTRIBUTE,指 LDAP 中代表 DB2 授權 ID 的用戶屬性,大多數情況下和 USERID_ATTRIBUTE 值一樣。

            USER_OBJECTCLASS = user
            USER_BASEDN = OU=CDL_CC DB2,DC=cn,DC=ibm,DC=com
            USERID_ATTRIBUTE = sAMAccountName
            AUTHID_ATTRIBUTE = sAMAccountName
            

            (3) 組相關值

            包括組在 LDAP 中對應的對象類 GROUP_OBJECTCLASS(MSDA 是 group),GROUP_BASEDN 指定從目錄樹的那個入口開始查找組,GROUPNAME_ATTRIBUTE 指定代表組名的組屬性。

            GROUP_OBJECTCLASS = group
            GROUP_BASEDN = OU= CDL_CC DB2,DC=cn,DC=ibm,DC=com
            GROUPNAME_ATTRIBUTE = sAMAccountName
            

            (4) 用戶所屬組的查找

            一種方法是 SEARCH_BY_DN,也就是查找組的屬性 member,看哪個組的成員列表中包含該用戶。另一種是通過查找用戶的屬性 memberofMemberofmember 對應,記錄了該用戶的所屬組。在 MSAD 中,使用第二種方法。

            GROUP_LOOKUP_METHOD = USER_ATTRIBUTE
            GROUP_LOOKUP_ATTRIBUTE = memberOf
            

            ClearQuest 模式連接用戶的特殊設置

            ClearQuest 模式連接中的用戶是一個DB2用戶,不是 ClearQuest 的用戶。負責 ClearQuest 應用和后臺模式庫的連接,非常關鍵,一旦該用戶被鎖定或者密碼過期,整個 ClearQuest 應用就會癱瘓。由于該用戶是處理應用和應用之間的請求,所以最好設置該用戶賬號永不過期,安全起見,可以設置該用戶是不能登陸的。


            總結

            經過上述的部署和配置后,開發人員工作需要的 ClearCase Windows 帳號 和 Linux/Unix機器帳號以及 ClearQuest 帳號都合并一個域賬號和密碼。

            對于管理員來說,只需維護一套賬號系統,新添一個 ClearCase Linux 客戶端或服務器的時候,再也不用去創建重復的賬號了。


            參考資料

            學習

            獲得產品和技術

            討論

            作者簡介

            馬玲,CSDL 軟件工程師,主要從事軟件配置管理工作,熟悉 ClearCase、ClearQuest。

            易傳佳,CSDL 軟件工程師,主要從事 Windows、Linux 系統管理和維護。

            posted @ 2011-10-26 08:34 tqsheng 閱讀(1089) | 評論 (0)編輯 收藏

            工具

            Adminpak.msi
            google尋找 Administration Tools Pack

            posted @ 2011-10-25 22:02 tqsheng 閱讀(198) | 評論 (2)編輯 收藏

            僅列出標題
            共25頁: First 14 15 16 17 18 19 20 21 22 Last 
            亚洲婷婷国产精品电影人久久| 久久久国产精品亚洲一区| 亚洲一区精品伊人久久伊人| 精品一二三区久久aaa片| 久久超乳爆乳中文字幕| 91久久九九无码成人网站| 囯产极品美女高潮无套久久久 | 亚洲成色999久久网站| 久久五月精品中文字幕| 久久精品亚洲精品国产色婷| 欧美成a人片免费看久久| 久久久久久久久无码精品亚洲日韩| 久久99精品九九九久久婷婷| 久久精品国产亚洲av影院| 久久影视综合亚洲| 一级做a爰片久久毛片16| 久久91精品国产91| 久久久久久久亚洲精品| 狠狠色丁香久久婷婷综合| 久久久99精品一区二区| jizzjizz国产精品久久| 成人久久免费网站| 精品久久久久成人码免费动漫| 婷婷综合久久狠狠色99h| 久久精品夜夜夜夜夜久久| 无码人妻久久一区二区三区蜜桃 | 久久综合给合久久狠狠狠97色69| 国产—久久香蕉国产线看观看| 久久水蜜桃亚洲av无码精品麻豆 | 亚洲成色999久久网站| 久久精品国产亚洲精品2020| 精品国产99久久久久久麻豆| 欧美久久综合九色综合| 久久精品国产色蜜蜜麻豆| 99久久99久久精品国产片果冻| 国产精品久久久久久福利69堂| 亚洲va久久久噜噜噜久久| 麻豆久久久9性大片| 亚洲国产成人久久精品99| 亚洲?V乱码久久精品蜜桃| 亚洲欧洲久久久精品|