江湖医生一样的程序员

2009年1月31日星期六

意淫 rm -rf /

刚才看到 Solidot 上一则报道(1)说:

"Rajendrasinh Babubahai Makwana,35岁,来自维吉
尼亚,是一位Unix工程师。10月24日当他的职务被终止
之后,其访问权限并没有取消,于是他悄悄在房利美的
主服务器上留下了一个Unix脚本。脚本被编程潜伏3个
月时间,然后苏醒,向管理员显示"服务器坟场
(ServerGraveyard)"的登录信息,系统的将服务器上
的数据全部归零。Makwana于1月7日被捕,在支付了10
万保释金后释放,他最高可能面临10年徒刑。恶意脚本
是在Makwana解雇5天后,被一位高级工程师无意中发现
的,如果他的脚本按计划执行,数以百万计的房地产抵
押记录将被抹掉,有可能对美国的房地产市场造成毁灭
性的打击。"


我的首要反应是这个哥们写了个 sh 脚本, 内容是

#!/bin/sh
rm -rf /

然后在 crontab 里加上一条, 让系统三个月之后执行,
本来如意算盘打得不错, 三个月之后, 突然数据全没了,
当然, 脚本也删掉了, 没有人知道为什么, 没有人会怀疑
到他, 就算怀疑到他也没有任何证据, 于是他边喊着
die! die! die!, 边填着离职表单. 然后没有被开掉的哥
们接手了他以前管着的机器, 然后就发现了这么个脚本
(毕竟人家也是高级工程师嘛), 于是就发生了以上报道的
惨剧.

以上故事可以说明两点:

首先写了个明晃晃的脚本告诉你的下一任你要删掉他全部
的数据显然不是明智之举, 至少也应该写个 C 程序编译
一下, 给你下一任留个二进制文件也多少带点挑战性, 人
家好歹职称是高级工程师呢, 你这么侮辱人家智商人家肯
定不爽你, 肯定会告你的啦!

然后房利美对于这么关键的数据, 难道没有严格的备份流
程? 为什么一个脚本删掉数据就会"有可能对美国的房地
产市场造成毁灭性的打击"?

当然, 以上情节是我在瞎意淫, 因为如果脚本真的是 rm
-rf / 的话, 那很有可能这是一个老 Unix 系统管理员给
这些没有幽默感的朋友们开了一个玩笑, 因为据维基百科(2):

"Sun introduced "rm -rf /" protection in to
Solaris 10. Upon executing the command, the
system now reports that the removal of / is not
allowed.[1] Shortly after, the same
functionality was introduced into FreeBSD
version of rm utility. GNU rm refuses to execute
rm -rf / if the --preserve-root option is given,
which has been the default since version 6.4 of
GNU Core Utilities was released."

我在我的 cygwin shell 里试过了:

luanma@xiaoshui ~
$ rm -rf /
rm: cannot remove root directory `/'

当然, 脚本很可能是:

cd /
rm -rf *

1. http://it.solidot.org/it/09/01/31/067200.shtml
2. http://en.wikipedia.org/wiki/Rm_(Unix)

2009年1月22日星期四

不是你的每个用户都是白痴

腾讯公司不是什么好公司, 这个大家都知道. 互联网公
司卖的是服务, 使用腾讯公司提供的服务, 你需要一颗勇
敢的心, 且不说 QQ客户端捆绑这个捆绑那个绑成几十兆
的体积, 就算你够勇敢安装上了, 它会无穷无尽地要求你
输入验证码验证码验证码,以及无穷无尽地账号出现异常
要求你激活激活激活. 其实我已经麻木了, 不想说什么
了, 因为我两年前就再也没登录过我的 QQ 号了, 腾讯可
以选择要怎么样做自己的服务, 我当然也可以选择自己需
要什么样的服务(我现在的 IM 服务用的是 gtalk).为什
么浪费宝贵时间骂一个破产品, 是因为今天我要联系一个
只有 QQ 号码的朋友, 想登录我久违的 QQ 账号, 但是我
忘了密码, 还好,我记得密码保护, 但是我的天啊, 我上
腾讯的网站才知道, 原来找回密码, 你得回到我经常登录
的网段, 我的天啦, 两年了, 我从北到南,又从南到北,
折腾了来折腾去, 你让我上哪里去找我经常登录的网段?
你自己是白痴, 你就要求你的用户也是白痴, 这我倒是能
够理解. 我打了腾讯的客服电话, 却发现腾讯客服原来
只服务 Q 币相关问题. 一个产品做了十年是这个样子,
这不应该是一个好公司的态度, 我想没人会说腾讯是个好
公司.


2009年1月16日星期五

编译 Windows 版本的 Pidgin

其实整个过程相当容易, 基本上只要按照 pidgin 团队给
出的指南按部就班(1)就可以了, 我分别在 ubuntu 7.10
的老本本和Windows XP 上成功编译 Pidgin 2.5.4, 特记
录一些需要注意的地方, 首先在 Ubuntu 7.10 下BEF(2)
脚本不能解压 BonjourSDKSetup.exe 到 win32_dev(拜托,
这是 Linux), 需要自己想办法, 我是把 Windows XP 上
解压好的拷了过去一份, 然后就可以顺利编译了. 在
Windows 上安装构建环境最好是选择自动方式, 安装
cygwin, 然后执行脚本即可. 最后贴个图, 由衷的赞美
一句, 多么美丽的 GTK+ 应用程序啊! Pidgin 是这个世
界上最好的 IM 客户端.



1. http://developer.pidgin.im/wiki/BuildingWinPidgin
2. http://gaim-extprefs.sourceforge.net/bef.shtml

2009.1.23 update: 可能细心的朋友也发现了, 我贴的图
版本是 2.5.3, 而文章里提到编译的版本是 2.5.4, 因为
pidgin 2.5.3 在 Windows 平台上与 NLA(Network
Location Awareness) 相关代码存在 bug 会导致 pidgin
推出的时候挂起, 只能强制杀掉进程, 详细情况请看 Trac ticket.

2009年1月15日星期四

Sony VAIO VGN-TX16C/B is a Linux certified computer

迫于生计, 我接受了一个 Windows 底下客服软件开发的
工作, 因为要实现远程协助, 那得是 C/S 模式, 于是我
成为了一个 Windows 开发者. 我将一个 Ubuntu 7.10
的安装盘放进我的小 Sony VAIO VGN-TX16C/B, 居然开机
即可正常工作, 无线, 蓝牙, 连调整亮度的快捷键都可以
正常使用! 我用了整整一天时间才把我的 Windows 系统
安装好, 系统, 驱动, 补丁, 补丁, 补丁, 补丁...精疲
力尽, 殚精竭力! 而 Ubuntu 7.10 开机即用, 甚至还能
打开 Compiz 特效, 等做完这个 Windows 下的活, 赶紧
回到 Linux 的温暖怀抱吧, 这两天的确有点被 zheteng
到了.