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 阅读(349) | 评论 (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 阅读(384) | 评论 (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 阅读(366) | 评论 (0)编辑 收藏

正保多媒体数据库

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

posted @ 2011-11-22 21:48 tqsheng 阅读(154) | 评论 (0)编辑 收藏

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

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

posted @ 2011-11-22 12:36 tqsheng 阅读(116) | 评论 (0)编辑 收藏

c#

Visual C# 2005程序开发与界面设计秘诀(随书附赠DVD)


  • 作者: 章立民研究室    [作译者介绍]
  • 丛书名: 微软新技术系列丛书
  •  

     

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

     

  • 作者: 丰士昌(中国台湾)   
  • 出版社:科学出版社
  • ISBN:9787030308184

  •  

    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 阅读(106) | 评论 (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 阅读(189) | 评论 (0)编辑 收藏

    网络编程——多线程技术实现网络聊天程序

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

    posted @ 2011-11-18 20:16 tqsheng 阅读(268) | 评论 (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 阅读(152) | 评论 (0)编辑 收藏

    QQ会员

    一律拨打168858861 号键

    posted @ 2011-11-03 22:23 tqsheng 阅读(128) | 评论 (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 阅读(330) | 评论 (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 阅读(441) | 评论 (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 阅读(265) | 评论 (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 阅读(1064) | 评论 (0)编辑 收藏

    工具

    Adminpak.msi
    google寻找 Administration Tools Pack

    posted @ 2011-10-25 22:02 tqsheng 阅读(188) | 评论 (2)编辑 收藏

    仅列出标题
    共25页: First 14 15 16 17 18 19 20 21 22 Last