世界因你不同 李开复 创新工场

Likaifu_YouMakeWorldDifferent.small

《世界因你不同》李开复自传

上周二拿到书,周日看完,每天就像着了迷一样,急迫地想要知道他这非凡的经历是如何走过来的。

确实,这个世界因为他,改变了不少。尤其是在中国这片土地上,微软中国,谷歌中国,都是他一手创建起来。

中学时全州第一的数学成绩,哥伦比亚大学计算机系史上最高毕业成绩,卡耐基·梅隆毕业时间最短的博士,语音识别领域最权威的专家,这一切传奇的经历,让我既羡慕又惭愧,回想自己大学四年中,食堂、网吧、家,这三点一线的生活,我真想从头来过。

我不奢望跟他一样,也不是说人人都要做到跟他一样才算成功,我只是觉得他的成功让我看到了自己虚度的时光。

亡羊补牢为时未晚吧,抓紧现在的每一分钟做更多有意义的事,也算这本自传没有白读。

说到“世界因你不同”,我也挺有感想,我自认为现在正处于有这丰富想象力和创造力的阶段,希望用自己的创新,开发出与众不同的互联网产品。

我听过有人对产品的评论,我希望我的产品也能做到:

  • 用过GMail的说:原来邮箱还可以做成这样!
  • 用过搜狗输入法的说:原来输入法还可以做成这样!

我设计的产品,不是多么超前的概念,不是多么炫酷的技术,也是一个现在广为人知,但无人留意的一个小小的方面,但仅仅是这一个点上面的思考,我已经积累了3年的时间,对这个产品的理解,也比一般的人要深入得多。

有人建议我,这个时候可以去李开复的创新工场试试呀。

我觉得还不行,我现在能说服别人的只是产品的应用价值,商业价值和盈利模式我还无法肯定。

我觉得最重要的,是产品还没有一个原型,因此就毫无说服力可言。

很多成功的人都说过一些最朴素的话,停留在嘴边的项目,不会成功。任何事都是说起来容易,做起来难,而一件事从无到有,更是难上加难。

我想自己努力,让我的产品从无到有,可以实际运行,并粘住一小部分用户,然后我会带着这个原型去创新工场。

但愿能得到一句“原来 xx 还可以做成这样!”的评价。

不过我现在还是有个疑问,作为一个创业型的项目,尤其是依托在产品人员和技术人员创新思维下的产品,他的盈利模式如何才能被挖掘出来呢?

我不相信马化腾在 1998 年就想到了腾讯今天的盈利模式,也不相信李彦宏在 1999 年就想到了百度今天的盈利模式,我认为中国互联网这两大巨头在大规模盈利之前的共同点是拥有了基数庞大的用户群。有了用户,盈利的方式会很多很多。

与其让一群自封为商业精英的不懂互联网产品和技术的人,主观臆断妄自意淫某产品未来的盈利模式,还不如真正地把自己当做一个最普通的网民,实际地使用一下众多有实际用途的创新产品,我坚信的是,只要产品有用好用,用户就会源源不断。

我知道,有人会对我的这个信念持怀疑态度,说我把创业想得太简单,太天真。我不否认,流行的产品不见得是好产品,好产品也不见得会流行。我的看法是,这句话在某些场合和环境下是事实,但依然有办法有途径,让真正好的产品得到最多用户的认可。我想,做到这一点的过程,才是创业最精彩,最吸引人的过程,这也是创业生活的真正魅力所在!

我想我会做到世界因我不同。

Tags:

iptables 防火墙 firewall COMMIT Linux

Applying iptables firewall rules: iptables-restore: line 20 failed [FAILED]

修改防火墙配置,然后重启 iptables,结果得到上面这个错误提示。

配置文件 20 行是一个 COMMIT,不是这行的问题。

跟内核有关系,但不要轻易重新编译内核,搞不好系统就没法用了。

找到上面问题原因,有其他方法可以解决的。

看了国外的一个论坛,有个人说是 -m 这个选项造成的。

因为当前系统内核中缺少一个 module,而 -m 这个选项刚好要加载这个 module。

这个 module 是 xt_state。

当然,重新编译 kernel,加上这个 module 可以解决问题,但我不敢,因为不会……

我可以不用 -m 这个选项。

其实我就是要求开放 22 和 80 这 2 个端口,其他的一律拒绝。

之前导致报错的写法:

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

把 -m state –state NEW -m tcp 这段去掉:

-A INPUT -p tcp –dport 22 -j ACCEPT
-A INPUT -p tcp –dport 80 -j ACCEPT

删除那个 -m state –state NEW 的意思是匹配状态,当新连接创建时应用过滤条件。

我估计这个是为了提升性能吧,连接创建时如果不匹配规则,就拒绝掉后续的请求,一旦连接建立,就不用对后续的包进行再次过滤检查。

如果是这样,我觉得可以接受,无非是服务器负载高一点而已,对流量小的网站来说没什么影响。等流量大了再研究编译内核吧。

Tags:

SSL negotiation failed: SSL error: parse tlsext

Apache/Subversion: SSL negotiation failed: SSL error: parse tlsext

在 CentOS 下配置 Apache + SSL + Subversion,一切都搞定后,提交原始代码到版本库,结果总是中途断掉,得到标题给出的提示。

查了下,是因为 TLSv1 协议的问题,不知是 openssl 的 bug 还是 subversion 的 bug,总之无法正常工作。

修改 Apache 配置文件,屏蔽掉 TLSv1 加密方式:

SSLProtocol -ALL +SSLv3

SSLProtocol +ALL -SSLv2 -TLSv1

SSLProtocol all -TLSv1

反正只要没有 TLSv1 就能正常工作,经测试,暂时还未发现新问题。

Tags: , ,

libsvn_subr-1.so.0: undefined symbol: sqlite3_open_v2

安装 subversion 到 CentOS 服务器上,编译了 OpenSSL、Apache 和 SQLite,subversion 也编译完了,用 httpd -t 查看 Apache 配置文件的时候报出错误:

httpd: Syntax error on line 106 of /xxx/yyy/apache2/conf/httpd.conf: Cannot load /xxx/yyy/apache2/modules/mod_dav_svn.so into server: /xxx/yyy/subversion/lib/libsvn_subr-1.so.0: undefined symbol: sqlite3_open_v2

一下就晕了,在 Google 查不到几条信息,也都没说到点上,不过还算有些启发。

之前在本地 VMware 的 CentOS 上测试过,安装很顺利,这回失败,肯定跟 64 位服务器有关。

换了多种 subversion 的编译参数,反复编译了几次,问题依旧。

后来学会了用 ldd 查看链接库的依赖:

shell> ldd /xxx/yyy/subversion/lib/libsvn_subr-1.so.0

libaprutil-1.so.0 => /xxx/yyy/apr-util/lib/libaprutil-1.so.0 (0x00002b4613bf5000)

libexpat.so.0 => /lib64/libexpat.so.0 (0x00002b4613e22000)

libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00002b4614044000)

libuuid.so.1 => /lib64/libuuid.so.1 (0x00002b461426c000)

librt.so.1 => /lib64/librt.so.1 (0x00002b4614470000)

libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002b4614679000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b46148b2000)

libdl.so.2 => /lib64/libdl.so.2 (0x00002b4614acd000)

libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00002b4614cd1000)

libc.so.6 => /lib64/libc.so.6 (0x00002b4614f2c000)

/lib64/ld-linux-x86-64.so.2 (0x00002b461376e000)

看到 libsqlite3.so.0 依赖的是用的系统自带的 64 位的 sqlite 链接库,这个链接库应该是没有定义 “sqlite3_open_v2”,因此 mod_dav_svn.so 是无法加载到 apache 中的。

虽然找到了有价值的线索,但让我开始更为迷惑,为什么 libsvn_subr-1.so.0 会依赖系统的库文件,不是我指定的 sqlite 的库文件地址呢?

又查看了 subversion 源码中附带的 INSTALL 说明文件,文中提及了 sqlite 的 3 种关联方式。

我指定了 sqlite 的安装路径,是第 1 种方式,但应该是使用 32 位方式编译的(不知道怎么设置强制 64 位编译),subversion 会忽略。

文中的第 2 种方式,把 sqlite3.c 复制到 subversion 的源码路径下:

/xxx/yyy/src/subversion-1.6.5/sqlite-amalgamation/sqlite3.c

然后重新编译,完成后再看 libsvn_subr-1.so.0 的依赖,发现它已经不再依赖外部 sqlite 。

这样 subversion 的安装问题就解决了。

顺便再记录一下 64 位系统中安装其他软件时遇到的问题如何解决。

安装 apache 需要 zlib 和 openssl,如果用普通方式编译这 2 个软件,则 apache 编译出错:

“relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC”

解决问题的方法,是在这 2 个软件进行 configure 之后,修改 Makefile 文件,找到 CFLAGS,加上 -fPIC 参数,如下:

CFLAGS=”-O3 -fPIC”

注意,这只是个例子,可能参数列表不一样,只要加入 -fPIC 就可以了。

Tags: ,

谷歌网上图书馆 一座永远的图书馆 vs CCTV2 今日观察

没想到CCAV用这么大篇幅来抨击Google图书馆。

在我看来,可能G.cn不想交保护费,然后某色社会,向基地组织学习,在实施罪恶之前,给出一段录像,算是恐吓。

看了cnBeta的众多评论,尤其是看到很多G粉儿的一片声讨CCAV的声势,我在些许欣慰之余,不免有些担心。

在天朝这样的国度里,最广大人民的根本利益,注定是要被黑老大们QJ的。怎奈我无力劝说所有的仍然心存良知的可爱的人们,其实你们可以在评论里一致祝福CCAV越办越好的,当黑老大们看到你们的愿望,便会搞死CCAV让你们享受“快感”。

实事求是,我也是G粉儿,我觉得很正常,痴迷于技术的人,怎会不是G粉儿?

反过来说,断章取义,唯恐世界变革影响自己的不劳而获的生活的不是G粉儿的人,怎会不是无知的SB?

前一阵看过一个介绍中国最初修建铁路历程的纪录片,给我很大感悟。那会儿全中国只有李鸿章支持修建铁路,可惜那会儿他还只是浙江巡抚,影响力有限。但在当时,算作洋务派代表的李鸿章,几乎是只身一人,面对大清国上上下下从太后到平民百姓所代表的顽固派,进行力量悬殊的斗争。

那会儿的官民倒成了一家人,说火车样子诡异,乃不祥之物,鸣音巨大,有伤风水。

像!真是惊人的相似,今天在CCAV上看到的这帮坐家们和砖家们的顽固不化的嘴脸,怎么跟200年前大清朝那帮愚昧的官民一副德性?

我正好看了谷歌中国的黑板报,引用了 Sergey Brin 的一片文字:《一座永远的图书馆》

请允许我在本文的最后全文引用这篇文字,我怕被黑老大们当大闸蟹给河蟹了。

我之前,有个梦想,把世界上所有有价值的文字、声音、影像全部记录下来,以供现在的我们和未来的人们学习、参考、回忆。

不过放眼世界,当今有能力做这件事的,也就只有谷歌了。

我只能感恩地谢谢地球那边的上帝,让 Larry Page 和 Sergey Brin 没有像天朝的企业家们一样坐拥财富之后便吃喝嫖赌抽,感谢上帝让两位天才也有了造福世界,造福后代的想法,并已经有了实际行动。

我看《明朝那些事儿》,讲到朱元璋的第四个儿子朱棣,取代朱允炆,开创永乐盛世,并修建了一部涵盖当时社会文明所有内容的《永乐大典》,这真的可以称之为前无古人,后无来者。这套书我印象中有几万卷,但后代被损,也在八国联军入侵之时被严重损毁,现今能找到的只有几十卷!看到这部分的时候我震惊了!我觉得这是中华民族文明财富的极大损失!

我很喜欢逛故宫,看完历史书,就更喜欢去故宫再看看,感觉身在其中,似乎能体会到几百年前的景象。我很遗憾,这一切只能是空想,看过所有的古装电视剧,也无法真正还原古代的社会形态。还好现在有了录音机、照相机、摄像机,可以让今天的世界,如实地展现给200年之后的人们。不过我们现在只是历史的“正在扮演者”,不能以历史的“后期观察者”身份看到古老的历史原貌。

呵呵,真是具有讽刺意味,我不知道怎么想出一个“后期观察者”这个词,看看标题,CCAV的“今日观察”,多么巧合的对比!你们那点思维,也只能今日观察,或观察今日了。

也许我东一句西一句的语言,不能让你完全明白我的意思,没关系,先让这些文字留在这里吧,日后我们回来再看,或者最好保存100年,让后代的学生当文言文要求背诵!

如果真的不明白,那么请看 Sergey Brin 的 《一座永远的图书馆》,现全文引用如下:

http://googlechinablog.com/2009/10/blog-post_20.html

一座永远的图书馆

2009年10月20日 下午 07:33:00

发表者:谢尔盖•布林(Sergey Brin)
转载自《纽约时报》

2009年10月8日,山景城,加利福尼亚

“电车没有得到普及的根本原因在于(1)生产商的失误:他们没能恰当地向大众宣传电车的实用性;(2)电力公司的失误:他们没能提供足够多的充电站和变压站,让人们更为方便地拥有和使用电车。早期电车在速度、行驶里程和实用性上的限制给人们的印象至今依然存在。”

这 个引述一点也不会让那些了解电车的人感到吃惊。不过,如果这些话是在一个世纪之前听到的,那时电车年产量仅有几千或上万辆的时候,可能就会有些惊人了。这 是出现在1916年的一本杂志《电气世界》(Electrical World)某期上的一个议题,是我在可供人们搜索上千万本图书的资料馆——“谷歌图书(Google Books)”上找到的。关于当代的一个问题要回顾几百年来探讨,看似很奇怪,但是我常常觉得过去对于未来有着极为宝贵的借鉴意义。在这里,我很幸运—— 20世纪早期,关于电车的研究和记载非常广泛,而且有很多关于这一主题的书可供选择。因为1923年之前出版的书都是公开的,我很容易查看到它们。

但 是人类已经撰写的绝大多数图书并不是每个人都可以得到的,除非是那些在一流学术图书馆(premier academic libraries)中执着工作的研究人员。1923年之后所著的书籍很快消失在图书馆“黑洞”。除了个别特例,读者只能在图书出版销售的几年之内买到这 些书,之后,只能在少数图书馆、二手书店找到它们。再往后,随着岁月流逝,合约被丢弃了、遗忘了,作家、出版商消失了、不见了,版权所有者的踪迹也难以寻 觅。

不可避免地,仅存的几本书也只能慢慢腐化,或者在大火、洪水或其他灾害中失踪。1998年我在斯坦福大学的时候,洪水损害、毁坏了上 万本图书。不幸的是,这样的事时常发生——一场类似的洪水20年前就曾在斯坦福发生过。你可以在1980年出版的《斯坦福-洛克希德•迈耶图书馆洪水报 告》(The Stanford-Lockheed Meyer Library Flood Report)中读到这段经历,但是这本书再也找不到了。

图 书是世界共有知识、文化遗产的重要组成部分,因此谷歌联合创始人拉里•佩奇(Larry Page)在10年前就首先提出了将所有书籍数字化的建议,那时的谷歌还是一家羽翼尚未丰满的新公司。那时,这项工程看起来如此狂妄自大、充满挑战,我们 无法吸引人们加入进来。但是五年以后,也就是2004年,“谷歌图书”(Google Books)(当时被称作Google Print)诞生了,可以让用户搜索到几十万本图书。今天,这个数字已经超过了一千万,并且仍在增加。

次年,我们受到了美国作家协会 (Authors Guild)和美国出版商协会(Association of American Publishers)对于这个项目的起诉。虽然我们之间有分歧,但却也拥有共同的目标,那就是打开禁锢在无数绝版书籍中的智慧,当然也会公平地对版权所 有人进行补偿。于是,我们共同努力达成了和解,以实现我们的共同目标。这一协议旨在让图书作者、出版商和谷歌实现共赢,不过实际上真正的赢家是那些能够获 得一片极为宽广的书籍天空的广大读者们。

这一协议也是颇受争议的,很多团体都积极发表意见,褒贬皆有。我想借此机会来澄清关于协议的一些 事宜,并且说明我对这个计划感到自豪的原因。这项协议旨在让成百上千万绝版但受版权保护的书籍“复生” ,或者会对读者收取一定费用,或者在广告支持下免费,但是大多数收入会归版权持有人,无论是作者还是出版商。

有些人说这个协议类似一种强 制许可证,就像集体诉讼和解一样,如果会员在某一规定日期之前不提出退出,那么该协议将对所有会员有效。而事实是,版权所有人可以在任何时候设定图书价格 及访问权或者从“谷歌图书”退出。对于那些版权所有人尚未出现的图书,将会为其制定合理的默认价格和访问规则。这既让读者能够读到尚未找到版权持有人的 “孤品”,也能为版权所有者不断累积资金,直至成为他们“不再隐身”的动力。

其他人对于协议在竞争方面的影响产生了质疑,或者断言这会限 制消费者对绝版图书的选择。事实上,这项协议根本没有限制其他公司或者组织作出类似的努力。此协议在绝版图书方面对消费者选择的限制,也只不过像是限制消 费者选择传说中的独角兽那样。如今,如果你想要得到一本绝版图书,只有一个选择——飞到美国几所一流的图书馆,并期待着能在书架上找到它。

我 希望能有一百种类似服务,那样我就能很容易地阅读到某一本书;那样将会节省很多时间,而且会为谷歌省掉很大力气。但是,尽管如今有不少数字化项目正在进行 (谷歌甚至为其他一些同类机构提供资金支持,包括国会图书馆的一些机构),但是没有一个颇具规模,造成这一现象的原因就是因为没有其他人选择为必要资源进 行投资。如果想要有一百个这样的项目,那现在至少要有这样一个服务存在。

如果“谷歌图书”成功了,其他项目也会效仿,那么他们将会有捷径 可走:这个协议创立了“图书版权登记簿”(books rights registry),鼓励版权持有人现身,这样其他项目将可更方便地获得许可。虽然新项目不会立即对无人认领的作品(或“孤品”)享有同等权利,但至少这 个协议为类似诉讼的和解提供了方向,而且它是“孤品”的立法先驱,谷歌一直并将继续为此提供支持。

最后,对于“谷歌图书”这一产品以及协 议中所展望的未来服务的具体几个方面还有反对的声音,包括对于文献目录信息质量、我们对于分类系统的选择以及隐私条款细节的质疑。这些都是合理的问题,作 为一家极为关注产品质量的公司,我们会不懈努力来解决这些问题,不断完善文献目录信息、改善分类方法,进一步细化我们的隐私条款。而且,如果我们不能正确 提供产品,就会被其他人取代。但有一件事可以确定:无论停止哪项进程,事情最终都不会得以解决。

我在“谷歌图书”上找到的 《1880-1881保险年鉴》(Insurance Year Book 1880-1881)中,Cornelius Walford按照时间顺序记载了几十座图书馆和几百万册图书的毁灭,他希望这样的记载能够让人们意识到做这样一些事来保存图书的必要性。亚历山大一个著 名的图书馆曾发生过三次火灾,分别在公元前48年、公元273年和公元640年,就像美国国会图书馆一样,1851年的一次大火烧毁了三分之二的藏书。

我 希望这样的毁坏永远不要再发生了,但历史证明并非如此。更重要的是,即使我们的文化遗产在世界最一流的图书馆保存得完好无损,但是如果不能让人们轻易读 到,那也形同虚设。很多公司、图书馆和组织在保存、提供20世纪藏书的工作中都发挥了作用。图书作者、出版商以及谷歌,他们共同朝着这个目标迈出了仅仅一 步,但却是非常重要的一步。让我们抓住这次机遇,不要错过!

谢尔盖•布林(Sergey Brin)是谷歌的联合创始人和技术总裁。

Tags:

写给即将到来的半年之约

http://www.leakon.com/archives/419 —— “就算鸣志吧,6个月后看结果!”

2009年4月26日,不用看日历,我深刻地记得那天是个周日。背着几乎所有的跟创业计划相关的东西,从姥姥家回到了自己家。

晚上,写下了上面那篇日记,为 26 岁的最后半年做一个最终的计划。

计划赶不上变化,中途受朋友之邀,加入了另一个创业团队。

一段说来话长的时光,转眼过去。经历了各种各样的事,接触了各种各样的人。可以算是场闹剧,不过收获颇丰,时间也算没有完全浪费。

回到现在,此时此刻,看着屏幕右下角的日期,想起了半年前的那个约定。

有时候似乎感觉做到过这样的梦境,小S问我:我是你自己精心设计的,为什么你对我这么没有信心,宁肯为了别人花费几个月的时间,也不愿意为我保留几天的时间?为什么每次你在做抉择的时候,那第一个被搁置的计划总是我?

我从未回答,也无力回答。

我一直以来都有一个毛病,不知道该怎么形容,如果用不恰当的词,可以是“朝三暮四”,换个专业的,有点“广度优先”。

时间长了,深受其害,总想改掉,难遂我愿。

我也因此开始失眠。失眠的感觉很难受。经朋友指点,也许是心理问题。上网查了查,买了本书《焦虑症患者》。希望能管些用。

本来今天这篇日记,应该是昨天写的,昨天离半年约定到期恰好还有一周,不过晚上应朋友之约谈事情,没来得及写,今天补吧。

今天下午去了一个离家不算近但坐车很方便的公司面试,也算挺有名的,至少现在还挺有钱的。不过过程……比较邪门。英文口语交流比较惨,基本没说出完整的句子,也不知道我今天怎么了。拿出考初学者的 PHP 面试题,还在考 $$a 这样的题目,我心说哥好歹也在百度混过一年,考我这个,不知道是在侮辱我还是在侮辱你自己。还问我推荐使用的框架跟 smarty 有什么区别……如果你这也敢叫框架,那我就管家里那甲鱼叫龙王爷。之前在路上我心里还盘算着该给人家谈谈哪个设计模式比较有心得,还想分享一下最近搞的自动化脚本的设计思路……可看到对面哥们那种以无知来轻蔑深究的龟儿子一样的嘴脸,我心说还是拜拜了吧您内!

邪门的一下午!

还是问问心底的声音吧,小S,我亏欠你太多,拖延你太久。

我已经开始想办法战胜自己,我会专注在你身上。

下一个也是最后一个半年,我们一起。

2009-10-20

森罗 氮气应用专家

前一阵帮一个朋友的公司做了一个企业宣传网站:

http://www.cnrotech.com/cn/

这个公司主要是做氮气应用的,比如工业用的氮气,农业上的水果蔬菜催熟,还有低氧健身。

公司的具体业务我倒是不太关心,我的任务是按照要求,做出一套方便管理和发布的企业宣传网站。

这样的要求快速开发的产品,我首选使用 Symfony 框架。

网站的要求比较简单,主要是基于分类和文章的关联,组织起相关的内容。

Symfony 的 MVC 架构,尤其是灵活的 Controller 设计,非常适用于这个网站。

在前端,一个 category 模块担负起分类的组织和列表页的显示,article 则专注于单篇内容的展现。

后端,分类层次可以任意设置,每篇文章都可以挂接到某个分类下,还有一些静态内容的编辑,比如首页的轮播图,以及各个示例图片的链接等。

URL 部分,Symfony 默认都是以 ReWrite 方式组织 url 的,本来应该省略掉 index.php 这个入口文件,怎奈万网的虚拟主机不支持 .htaccess 文件,只能凑合用了。

比较特殊的是,这个网站还要有一个英文版,统一的入口在 http://www.cnrotech.com/,进去后选英文的就可以看到。

最初的设计,利用 Symfony 自由配置的特性,中英文网站可以使用同一套后台发布系统,但在需求方的要求下,独立了 2 套 CMS。那会儿着急上线,为了快,就这么答应了。

实际上,Symfony 可以配置多套 Controller,只是后台控制器入口文件不同而已,如果按这样的方式部署系统,那 2 套网站可以共用一套基础程序,有任何改动只须在一个地方修改,不必重复。

三本新书 《The Art of Agile Development》《SQL for MySQL Developers》《走出软件作坊》

《The Art of Agile Development》

The Art of Agile Development
The Art of Agile Development

敏捷开发的艺术,小团队,大作为!本地下载

《SQL for MySQL Developers》
A Comprehensive Tutorial and Reference

SQL for MySQL Developers
SQL for MySQL Developers

有些SQL我还不会写,多学学!本地下载

《走出软件作坊》

走出软件作坊
走出软件作坊

一个人,一条枪,也要成为正规军!本地下载

Tags:

Samba Windows 共享 配置 CentOS Linux

这几天在搞服务器远程备份,是利用本地的VMware的CentOS,定期同步IDC服务器的文件和数据库,在本地用DVD刻录保存。

为了方便在Windows系统下刻录虚拟机CentOS文件系统下的文件,本来有很多种方式,VMware也带了tools,很好用。

但为了练练手,决定搞搞Samba,这是一个解决Windows和Linux系统之间文件共享的工具,详细信息请自行查阅。

写此文的目的是记录一个困扰我一整天的问题,现在解决了,希望能帮大伙儿节省时间。

首先请检查CentOS中是否已安装samba:

root#> yum list | grep ‘samba’

如果有 samba.i386  3.0.33-3.7.el5  installed,说明已安装。

尝试一

我在网上查找了samba配置教程,有一个不需要密码的共享方式的配置文件:

[global]
workgroup = WORKGROUP
netbios name = LeakonCentOS
server string = Leakon’s VMware CentOS 5.3
security = share

[linuxsir]
path = /home/leakon/backup
writeable = yes
browseable = yes
guest ok = yes

我用这个配置文件始终不行,用 \\IPAddress 的方式可以看到共享目录,但无法打开,提示“无效的网络名称”。

我试过修改 /home/leakon 和 /home/leakon/backup 目录的属性,甚至都改为 777,也是这样(这是非常不好的做法)。

尝试二

改用默认配置文件,默认是启用 security = user,也就是用户验证的方式。

我尝试输入CentOS下的帐户名和密码,结果无效!

尝试三

看到网上配置教程说,要用 /usr/bin/smbpasswd -a username 添加用户,然后我创建了一个新的用户名:

root#> /usr/bin/smbpasswd -a leakon_samba

接着输入密码,然后给我这样一个错误提示:

Failed to modify password entry for user leakon_samba

头晕!

然后换成CentOS已有的用户名 leakon,结果就一路顺利,得到 Added user leakon 的回应。

再仔细查看教程,其中有这么一句:samba创建的用户,必须是系统中已存在的用户!

原来如此,难怪创建 leakon_samba 这个用户时出现错误提示了。

接着回到Windows,输入IP查看共享,这回出现另一个问题:

“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接”。

崩溃……

我怎么就多重链接了?赶紧Google,还好第一条就找到了解决方案。

解决方案

用 net use 命令可以查看当前用户与网络资源的连接。

删掉这些连接,用下面的命令:

dos> net use * /del /y

然后再次访问……

成功啦!!!

简单总结

在我的这个应用场景下,不用修改配置文件,只要用 /usr/bin/smbpasswd 增加一个系统内已存在的帐户到 samba 的用户系统下,同时分配一个专用密码即可。当你在 Windows 下访问共享目录时,根据你输入的用户名,自动可以打开系统用户的 home 目录,非常方便。

Tags: ,