2006.11.27 00:52:00
samba和微软文件打印共享的对比
samba和微软文件打印共享的对比 车里焖-----from 2006-9-13-------------2008-12-25 v2 aleng2006.blogcn.com 欢迎探讨,请准备好差别论据。 ------------------------------------前言--------------------------- 这是我学习samba的心得,是给刚学习samba的新人看的。 linux从诞生那天开始就是两条腿走路,从左面学习unix,从右面学习win,走在他们两个的中间。samba正是这么个中间产物。samba做到今天这种程度,我觉得也很难得了。但是不好用,不推荐。 ------------------------------写这篇文章的目的----------------------------------------------- 1对于初学者,即使我没写这篇文章,你的头脑里也应该有 “为什么要用win搭建文件共享服务器?”或“为什么要用samba搭建文件共享服务器?” “我要在‘我’单位搭建共享服务器应该用win还是linux?” “我要在‘我’单位搭建共享服务器应该先考虑好哪些问题?”等这些思考。而我的文章或多或少为你提供了这些问题的答案。 2软件只是工具,什么简单+方便+功能强大我们就应该用什么。我们应该理性分析,而不应该固执地盲目崇拜某种解决方案。我看到有些人非要实现当前samba版本不能实现的功能,不易实现的功能。我觉得很诧异。 这就好像你用斧子砍柴,觉得不那么顺手。为什么不顺手?是太大,太扁你并不十分清楚。但是你不去找鲁班探讨解决。非得去找李逵研究。你为什么不想想:李逵用斧子砍人那是行家里手,但是砍柴却不精通 呢? ----------------------------------------------正文------------------------------ 差别一:samba打印共享差。--------驱动问题 彩色喷墨打印机为我们带来了漂亮的照片,海报,彩色激光打印机能够快速输出效果图、样张。财务人员使用针打输出票据、报表。黑白激光维持常用办公,打字复印。可以说打印机支撑了各行各业,那么谁为打印机提供了支撑?或者说谁为打印机更多地提供可使用资源?(如 谁为打印机提供了多种中文的可缩放字体?哪种系统可以使用大部分现有的中文字体?并且显示佳打印妙?哪个系统提供了打印api供调用,以便打印机能利用电脑的cpu内存?以便打印机生成图形?以便减少打印机cpu,内存?来降低客户的投入?)在这里我们可以把各种操作系统代入计算公式。*unix+linux;win;mac-os。在中国可以说win这个平台,胜过了osx9(很多点阵矢量中文字体不能安装在osx9上,可以安装在win和osx10上),占有率高过osx10,把linux, *unix等落下很远! 我们为什么要使用打印共享?(打印共享为我们提供了什么功能) 二 为客户机存储/传送驱动。 打印服务器上,存储着客户机的打印驱动程序,一台新的客户机想安装驱动时,直接指明打印机的路径,自动传送(下载)安装驱动程序。这个功能很方便linux,*uxix无此功能。 二 为客户机存储/传送自定义纸张类型。 三 驱动程序数量。 linux,*uxix由于缺少厂家的驱动支持,导致支持的打印机比win少很多,即打印驱动程序少。大多数喷墨、彩色激光、针式打印机没有驱动,不能在linux,*unix下使用。 正是由于linux,*unix支持的打印机数目少,所以不是你想用什么功能就买什么打印设备,而是你买了它不支持导致用不了。linux 下用打印机共享就好像让一个不会写字的人替书法大师写字,整个一个班门弄斧。实际情况是linux人中,用samba共享文件的多,用打印机共享的没几个。这方面的文章也少,因为没人能解决问题。 --------------samba只作文件共享-------------------------------- 差别二:samba基本无法杀毒。 连接文件共享的客户端,大都是win。如果服务器上不能杀毒,一旦服务器传播了毒,那管理员的饭碗恐怕要糟。 linux+samba不能染毒,linux下也没什么厉害的杀毒软件。linux下最厉害的杀毒软件可能还不及win下最差的。所以说“samba基本无法杀毒”,这就是平台的差异。 .exe .eml .pif .html 等都可能染毒。而某些linux管理员竟然想出了:禁止文件服务器上存放。exe文件这个方法。这个方法是愚蠢之极的,就好像臭味太大,但不去打扫厕所,反而把所有如厕人士鼻子搞坏。真是i 服了you! 如果你想给linux+samba杀毒,还要一台winxp+win下好的杀毒软件帮他杀。 那么就不如用win+好杀毒软件的方案了,可以通过不用文件服务器上网,基本不装第三方软件,少用超级账户,来防止win服务器染毒。 win的文件服务器加上杀毒,必然慢很多。某些人因此而感觉很不爽,甚至发飙改用linux+samba。这让我想到了人有病御医都束手无策,那人反倒去找大仙。linux大仙摆下卦摊,为的本是招揽用户,你来了,他很热情,还说治好治不好都免费,你安心地学起了装调试,企图提升水平挽救自己。3年后,当你发现无法治病,你已经是它的用户了,并且早已忘了是想来治病的。 差别三:磁盘分区格式的差别。 1 没有ups的情况下ext3抗断电的能力不如ntfs,扫描磁盘错误的次数要多。目前90%以上的linux使用ext3分区格式,即90%以上linux+samba文件服务器抗断电不如win,不到10%的linux(unix)+samba文件服务器抗断电能力和win持平。 2 ext3簇比较大,比较浪费磁盘空间,但文件碎片相对少,节省了磁盘整理时间。 3 ntfs的“卷影副本”功能相当于,linux定期备份文件。 4 文件名的字母大小写区别。基本上可以这样认为:你如果想把(ABC.txt)和(abc.txt)当作两个文件使用,那么应该用samba搭建文件服务器。否则请用win作为服务器。但好像实际应用中,很少必须用文件名字母大小写来区别文件,尤其是非英文国家。 5 文件名保留字差别。有些特殊字符,被系统保留起来了,作为特殊用途。这些保留字win和*unix不同。在win中,英文的“:”作为盘符标志,不能出现在文件名中。 6 恢复误删除的文件。win可以恢复20%~~~80%文件,linux可以恢复 0.1% 不论你怎么觉得ntfs和fat32不好,如果想恢复误删除的文件,自己用软件可以恢复20%~~40%,请专业公司可以恢复80%以内,ext3就基本无法恢复文件。 如果你觉得为了安全,删除的文件就不应该能恢复,那么ntfs和fat32也不错,自已恢复不出太多,况且在win下面“文件粉碎机”太多。真是“丰简由人”。linux呢?我真希望在linux上装个软件就能有可以恢复误删数据的功能,可惜没有! 差别四:受linux(*unix)文件权限体系影响,samba文件权限管理不细致。 在这里,我们比较的是samba+linux(或*unix)和微软文件打印共享+ntfs(或fat32),由于samba共享权限,和微软文件打印共享权限相同,即只读,或读写。这里我们比较的是两种文件系统的权限。即ext3和ntfs和fat32。 linux 只能划分3种不同权限(user,group,other)导致samba的共享权限控制不能像win那么灵活,高不成低不就。比fat32复杂,比ntfs简单。posix-acl,linux和*unix对它支持还不好(riserfs riser4 不支持acl,nfs 对acl支持相当有限),网管也很少使用。目前不到1%。所以,权限管理达到win的水平还要5年以上。 win 如果你想实现简单的共享权限控制,请用fat32分区,他不区分用户,即对所有人只读,或读写权限。 如果你想给不同用户不同的共享访问权限,请用ntfs。 还可以把不想区分用户的共享放在fat32分区,把细分权限的共享资源放在ntfs分区。 注意:你把文件从win移动到linux(或反之),文件原有的权限将丢失,因为是两个系统。posix-acl不能兼容ntfs-acl. 差别五:samba用2套用户名密码验证机制很烂。 win 1在win服务器上建立用户名,设置密码。 2在客户端用这个用户名,密码访问共享资源。 samba 如果没有linux下和win用户重名的考虑,samba使用linux验证就很好。验证通过后,这个用户名就成了一个验证过的linux用户,可以直接访问这个linux用户的主目录。但是考虑了重名(当然可能还有别的原因如加密方式),samba不得不自建了一套验证机制,使用两套用户名,密码,3个配置文件,然后把这两套东西(linux验证,samba验证)粘和在一起用,增加了配置难度,很悲哀,很无奈。 这里我举个盔甲的例子: 一个人要想防止虫子咬他身体,就要穿上盔甲,如果一个人穿上两套盔甲,必然一套盔甲要依附另一套盔甲,也就是焊在另一套盔甲外,那和一套也没啥区别。况且这种夹层盔甲,如果没弄好夹层关系,验证正常进入的内容时,正确的钥匙打开了外层,但是却看不到应看到的内容(由于联动没做好,应该开的里层没开,被里层挡住了)。这就是我说的“粘在一起用的悲哀” 翻翻samba论坛近年的帖子,你就会发现,绝大多数人都会卡在这里一下,功力高的人一运气过去了,功力差的人一部分还在坚持,一部分折了,不玩了。 samba验证过程(略) 差别五:中文支持的差别。-------源于linux对中文兼容差。 samba服务器中文目录名、文件名、共享名容易乱码。用户名也不能使用中文的,如:张三,销售部等。linux里面用的比较多的文件名编码是utf8,win2000以上统一用unicode即utf16编码。他们之间不兼容。当然这不能说是linux或win的错。 linux可以设置local。从文件名编码这块看linux下文件名编码是灵活的,手动的。这就很不好了,如果是文件名编码灵活,而且能够智能识别就好了。在linux不能智能识别文件名编码的情况下,如果某些文件名中包含1种中文编码,另一些文件名中包含另1种中文编码。那么在linux上就只能或a编码不乱码或b编码不乱码。 linux磁盘扫描程序可能把这些,它不能识别的中文文件目录名修复得更乱,那就糟了。 相对而言,用win2003server作文件服务器,用win和linux客户机,更容易统一,不容易乱码。 差别六:设置比较难--------这是linux的通病 学用微软文件共享搭建服务器,解决使用中的问题太简单,在100个有问题的人中,有80%是很菜的菜鸟,他们大都不是计算机专业的,女士,或水平极差劲,只有20%的问题稍难,这些问题大多可以通过设置组策略完成很多高级功能。 使用samba搭建服务器的人士,有80%以上玩win共享文件毫无问题比较有水平了,但是这80%的人使用samba却不行。大概有50--60%卡在了,权限设置,两套用户名密码的转换上。剩下的20%--30%并没有学通整个smb.conf配置文件。 还有20%是不太常用的功能,比如限制哪台客户端不能访问服务器,限制客户机访问服务器的时间段。 差别七:仿造的总是不如原装的。-------总有小毛病。 这些小毛病,有些是我遇到的,我不知道怎么解决,可能大多无法解决。有些是别人在网上说的,别人说的我没验证过。 1 我验证过 user模式下,不能以guest为用户名,密码空,自动登陆。要么弹出输入框,你必须手动输入用户名guest,密码空着。如果加上“ map to guest = Bad User 和 map to guest = Bad Password”自动出错。 2 别人说的 两个人不能同时复制一个大文件,如电影文件。 3 我遇到的 复制到服务器上的文件,在服务器上建立的目录,不能立即看到,要等一会(或按f5刷新)才能看到是否复制成功。这个毛病时有时无。 4 别人说的 经"我"认真测试,发觉复制的文件中,大约有百分之几的比例会快一秒,这个比例大概在6-8%左右吧。 5 在 server 模式下,即用户验证指向另外一台samba,即2台samba服务器用一套用户密码,用 password server =ip.客户机弹出[用户名密码输入框]过程特别慢,浏览文件夹速度特别慢。并且,客户端如果是vista不能弹出用户名密码输入框(winxp可以)。 差别八:团队合作和单打独斗-------很多功能是不容易仿造的。 团队合作力量就大(群殴:-)),就是比单打独斗强。程序也是如此,模块互相支持功能就强。但是好像windows程序互相合作好些,*unix程序差些。win2003r2的新功能之一就是可以把磁盘配额放在目录上,即共享目录配额,这是不错的功能。如果samba想仿造怎么办,自己接管qouta?还是让别人的软件支持自己?我预测samba要真想模仿这个功能,肯定是增加个命令,让用的人自己用脚本串联使用。而不管是否方便。这类问题林林总总。总是不如提供一揽子解决方案的微软。 软件的功能总会越来越多,可能把和自己软件功能毫不相关的功能,结合起来就是一个不错的新功能。使用了posix-acl备份的时候就不能用tar,就可能出现需要的软件没有,即没有star,即使有,也可能我没装,即使装了也可能会有问题,可能是很少用到的功能有问题,对方很久才把这个问题解决。总是不如提供一揽子解决方案的微软。 差别九:能仿造的太露骨了-----或许会有授权问题。 samba能仿造的都仿造了,连win的域控制器都造出来了,windows域对用户的认证都能接管。所以说简直是抄袭,盗版。这里我想分别和各位讨论: 1 雷同不好。 就算你写篇作文,最多也就从1个地方抄90%,另10%或自己苦想出来,或从别的地方摘抄。而samba能抄的都抄了,不能抄的还在想办法抄。却没有丝毫他自己创造出来的功能?要是这样那可就有点无耻了。 2 samba通过软件领域的反向工程方法,分析使用了和文件打印共享相同的端口,工作方式,域认证接口等。99%模仿了微软专有的文件打印共享协议,相同的工作原理。就像早期linux模仿unix,仿的太像了,sco公司一发威,linux为了不涉及版权,去掉了那些专有的程序,而用自己新开发的。速度,稳定性马上就差了不少。文件和打印共享是微软的。nfs是sun的。这两大局域网协议都是有主的。如果人家追究起来是逃不掉的。如果微软认为“开源软件samba因为模仿了文件打印共享,构成侵权,应该从linux发行版中去除”,那linux可不方便多了。现在人家没追究,我觉得原因有二,1微软宽宏大量2samba开发团队非商业公司追究不易。 最新消息: 微软本周四同一家开放源代码软件组织签署了一份少见的授权协议,协议自由信息基金会向微软支付1万欧元的授权费用,从而获得了所需的全部工作组服务器协议。Samba必须为这些信息保密,但可以公布执行这些协议的源代码。 这份协议由微软同非盈利组织“协议自由信息基金会”(Protocol Freedom Information Foundation)签署,旨在帮助非盈利开放源代码服务器软件开发商Samba。Samba创始人安德鲁·特里格尔(Andrew Tridgell)表示:“通过这份协议,Samba可以了解微软Windows的最新变化。与此同时,其它自由软件项目也可以获得与Windows交互 所需的信息。” 微软协议签署官员表示:对手是欧盟,这只见谁身上有油水,就咬住不放的d-g。intel,中国的mp3厂家都被咬了,连中国游客身上穿假名牌去旅游都被扒衣服了,我也没法子 ;-) 差别十:samba的域控制器和微软的域控制器。 还没酝酿出来,敬请期待。。。 总结: samba和文件打印共享本来99%相同,只是他们存在于不同平台。我们看到,samba受linux遗传,增加了驱动少,不能杀毒,删除的文件难以恢复,配置难,两套用户名管理机制等,文件权限管理不细致。linux的这些特性只给samba带来了负面的作用,令samba失色很多。所以说不建议使用samba搭建服务器。建议用win2003+杀毒软件来部署服务器。
标签: samba ,文件共享 ,打印共享
作者 aleng2006 评论() | 人气( )
| 引用( ) | 推荐 | 问题日志 | 收藏到网摘 | 返回首页