我的关注

使用DenyHosts阻止SSH暴力破解

DenyHosts是Python语言写的一个程序,它会分析SSHD的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽IP的功能。

DenyHosts官方网站为:http://denyhosts.sourceforge.net

以下是安装记录(以CentOS 4.4, DenyHosts 2.5 为例)

# cd /usr/local/src
# wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5.tar.gz
# tar -zxvf DenyHosts-2.5.tar.gz
# cd DenyHosts-2.5
# python setup.py install

# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# vi denyhosts.cfg

# cp daemon-control-dist daemon-control
# vi daemon-control

DENYHOSTS_BIN = “/usr/bin/denyhosts.py”
DENYHOSTS_LOCK = “/var/lock/subsys/denyhosts”
DENYHOSTS_CFG = “/usr/share/denyhosts/denyhosts.cfg”

# chown root daemon-control
# chmod 700 daemon-control

# ./daemon-control start
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig –add denyhosts
# chkconfig –level 2345 denyhosts on

DenyHosts配置文件说明:
SECURE_LOG = /var/log/secure

#sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。

HOSTS_DENY = /etc/hosts.deny

#控制用户登陆的文件

PURGE_DENY = 5m

#过多久后清除已经禁止的

BLOCK_SERVICE = sshd

#禁止的服务名

DENY_THRESHOLD_INVALID = 1

#允许无效用户失败的次数

DENY_THRESHOLD_VALID = 10

#允许普通用户登陆失败的次数

DENY_THRESHOLD_ROOT = 5

#允许root登陆失败的次数

HOSTNAME_LOOKUP=NO

#是否做域名反解

DAEMON_LOG = /var/log/denyhosts

#DenyHosts的日志文件

CentOS 5.4 yum安装Apache+php+Mysql

Centos 里的 yum 在线安装很慢.以下是替换为中国CentOS镜像服务器!
中国官方镜像网站: http://centos.ustc.edu.cn/
/* 使用说明 */
cd /etc/yum.repos.d  [进入yum.repos.d目录]
mv CentOS-Base.repo CentOS-Base.repo.save   [修改源文件名称备份]
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5  [下载]
mv CentOS-Base.repo.5 CentOS-Base.repo     [下载后的文件更名]

1. 更新系统内核到最新.
yum -y update
系统更新后,如果yum安装时提示错误信息,请执行以下命令修复.
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*

2. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件

yum -y install httpd php mysql mysql-server php-mysql

//安装mysql扩展
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
//安装php的扩展
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
//安装apache扩展
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

一次性粘贴安装:
yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql

3. 启动服务配置

/sbin/chkconfig httpd on [设置apache为自启动]
/sbin/chkconfig mysqld on [mysqld服务]

/sbin/service httpd start [自启动 httpd 服务]
/sbin/service mysqld start [自启动mysqld服务]

4.设置mysql数据库root帐号密码。
mysqladmin -u root password ‘新密码’ [引号内填密码]

让mysql数据库更安全

代码:

mysql -u root -p [此时会要求你输入刚刚设置的密码,输入后回车即可

mysql> DROP DATABASE test; [删除test数据库]

mysql> DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]

mysql> FLUSH PRIVILEGES; [重载权限]

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.13′ IDENTIFIED BY ‘密码’ WITH GRANT OPTION; [增加远程链接用户]

按照以上的安装方式, 配置出来的默认站点目录为/var/www/html/

测试环境

rpm -qa |grep mysql

rpm -qa |grep httpd

rpm -qa |grep php

5.配置文件存放的位置

apache配置文件存放的位置:/etc/httpd/conf/httpd.conf

php配置文件存放的位置:/etc/php.ini 和/etc/php.d里面的文件

mysql配置文件存放的位置:/etc/my.cnf

6、安装phpMyAdmin

进入phpMyAdmin官方下载(不要最新版本,下phpMyAdmin 2.11.9.5
就行了,3.1以上需php 5.2以上),上传到你的网站目录下,然后进行配置。只需几步即可搞定。

I. config.sample.inc.php更名为config.inc.php;

II. 打开config.inc.php文件,进行以下修改;

// $cfg['Servers'][$i]['controluser'] = ‘pma’;

// $cfg['Servers'][$i]['controlpass'] = ‘pmapass’;

// $cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;

// $cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;

// $cfg['Servers'][$i]['relation'] = ‘pma_relation’;

// $cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;

// $cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;

// $cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’

// $cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;

// $cfg['Servers'][$i]['history'] = ‘pma_history’;

// $cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;

去掉每行前面的//;

II.$cfg['blowfish_secret'] = ”; |修改为| $cfg['blowfish_secret'] = ‘http’;

IV.$cfg['Servers'][$i]['controluser'] = ‘pma’; |把’pma’修改为你的帐号|$cfg['Servers'][$i]['controlpass'] = ‘pmapass’; |把’pmapass设置为你的mysql登录密码|

V. $cfg['blowfish_secret'] = ”; | 添加短语密码例如:$cfg['blowfish_secret'] = ‘onohot’;

快速入门PHP面向对象编程

前言

面向对象博大精深,对于从未接触过得的人,会觉得一头雾水。

学习的资料很多,但大多比较抽象,所以我用经典的游戏-星际争霸来讨论PHP面向对象。

现在假设我们来用PHP开发星际争霸,从而接触PHP面向对象。

注意,为了便于学习,除了特殊说明,否则各部分代码之间没有关联。而且同一件事情往往用的是不同的代码。

另外我也不去考证各个兵种的属性数字,仅仅用来说明。

一、类和对象

如果玩家制造了一个机枪兵,那么我们怎么表示他呢,因为每个机枪兵有几个基本的数据要记录:剩余的血,杀敌数量,攻击力等等。

我们可以用一个数组来记录一个机枪兵剩余的血和杀敌数量,因为这对于每个机枪兵是独立的。

但攻击力比较麻烦,因为经过升级,攻击力会增加,这就必须要找出所有表示机枪兵的数组,然后进行修改,非常麻烦。

从这里我们可以看出一件事情,首先每个机枪兵有独立的数据需要记录和修改,比如剩余的血。同时他们有相同的数据需要共用,比如攻击力。

这时候面向对象就能帮上我们的忙了。

1.1、类的定义

我们先来处理一部分问题,也就是每个机枪兵独有的数据。

class marine

{

   public $blood = 50;//剩余的血

   public $kills = 0;// 杀敌数量

   //这个函数(通常叫做方法)表示攻击敌人时候的运行代码
   function attack($enemy)

   {

   // 攻击敌人的代码

   }

}

这叫做类,我们建立了一个表示所有机枪兵的类marine,这里面保留了需要每个兵独有的数据,比如上面代码里的剩余的血。

1.2、对象的创建和使用

接下来我们来使用对象,也就是每个机枪兵:

$m1 = new marine();

通过new后面加一个类的名字和括号,我们新建了一个机枪兵$m1,$m1被叫做类marine的对象,我们可以把它想象成一个特殊变量,只不过里面保存了多个数据。

如果需要使用或者操作某个机枪兵的血(对象的属性),只要用$m1->blood来表示就可以了:

echo $m1->blood;// 输出机枪兵$m1剩余的血

我们再建立一个机枪兵

$m2 = new marine();

如果此时$m1被敌人攻击过了,还剩下10个血。而$m2没受过攻击:

echo $m1->blood;//结果是10

echo $m2->blood;//结果是50

使用对象可以很简单的保存每个机枪兵的血,不会互相影响。

如果机枪兵$m1攻击敌人的时候,可以这样使用对象的方法:

$m1->attack($z1);//假设攻击的是某个小狗的对象$z1

不同的类内可以用同名的函数,比如小狗的类Zergling里面也可以有一个函数attack

要注意的是,从PHP5开始,无论在哪里改变一个对象的属性,都能改变它。比如上面一个小狗对象被作为参数传入机枪兵的attack函数,执行函数之后这个小狗对象的血减少了,这和一般的函数不同。但这是很直观的,如果一个小狗被攻击了,它的血就应该减少。

二、构造函数和析构函数

每次我们新建一个机枪兵的时候,总人口应该加1,如果一个机枪兵被杀,人口应该减少1。

可以通过构造函数和析构函数来自动处理:

class marine

{

   // 构造函数
   function __construct()

   {

   //增加总人口的代码

   }

   //析构函数
   function __destruct()

   {

   // 减少总人口的代码

   }

}

在一个类中,名字为__construct的函数叫做构造函数,每次new新建一个类的对象的时候就会执行:

$m1 = new marine();//每次制造一个机枪兵时系统会调用类marine的构造函数,自动增加总人口

在一个类中,名字为__destruct的函数叫做析构函数,每次销毁一个类的对象的时候就会执行:

unset($m1);//unset可以用于对象,表示销毁一个对象。每次一个机枪兵被杀时系统会调用类marine的析构函数,自动减少总人口

三、静态

机枪兵的攻击力是属于所有机枪兵对象,每个机枪兵的攻击力都是一样的,如果升级,应该一起变化。

这就用到static,表示静态:

class marine

{

static $attackNumber = 10;//攻击力的数字

   //这个函数表示攻击敌人时候的运行代码
   function attack($enemy)

   {

   //攻击敌人的代码,$enemy->blood表示敌人对象的血属性

   $enemy->blood -= self::$attackNumber;

   }

}

静态属性表示类所有的对象都共享的属性,一旦改变,所有的对象都跟着变化。

静态属性用static开头,比如上面的static $attackNumber。

静态属性可以用类直接访问:

echo marine::$attackNumber;//显示10

如果类以内的函数访问,用 self::$attackNumber表示本类的$attackNumber属性

所以如果我们升级了机枪兵的攻击力,所有的机枪兵都受影响,这就是面向对象的好处之一,也解决了我们前面讨论的共同数据的问题。

函数也可以是静态的,这样就可以用类直接访问,不需要新建对象来调用:

class marine

{

static $attackNumber = 10;//攻击力的数字

   //这个函数表示机枪兵升级的运行代码
   static  function upgrade()

   {

   self::$attacknum++;

   }

}

如果科技建筑升级完毕,直接就调用这个函数:

marine::upgrade();

四、继承

兵营用来造机枪兵,坦克房用来制造坦克,他们都是建筑,但是却有很多不同,如果用一个类“建筑”来表示,很困难。

但我们要保留他们的共性,比如都能飞行,不希望飞行的代码在各个类重复写,又要让他们能各自独立的生产不同的东西。

所以我们可以用继承来处理,继承表示父子关系,被继承的叫父类,继承的叫子类。用extends表示继承

//建筑类

class building

{

   function fly()

   {

   // 建筑飞行的代码

   }

}

//兵营类

class marineBuilding extends building

{

   function createMarine()

   {

   //制造机枪兵的代码

   }

}

// 坦克房类

class tankBuilding extends building

{

   function createTank()

   {

   // 制造坦克的代码

   }

}

接下来,我们看看继承产生的效果:

//如果造了一个兵营:

$mb1 = new marineBuilding();

/**

一旦他需要飞行,就可以直接使用建筑类的函数fly(),尽管兵营类的定义里没有这个函数

*/

$mb1->fly();

//而他要制造机枪兵的时候:

$mb1->createMarine();

同样是继承建筑类的坦克房类,就无法制造机枪兵,因为这是兵营类的个性。

如果在子类中的函数调用父类的函数,要使用parent,比如parent::fly()

注意,一个类只能有一个父类,PHP不允许多重继承,也就是说一个孩子只能有一个爹,一个爹可以有N个孩子!

五、访问控制

如果用$attackNumber = 10表示属性的话,系统默认是public $attackNumber = 10,所以建议这样写:

class marine

{

public static $attackNumber = 10;//攻击力的数字

}

public表示这个属性是公共的,也就是在任何地方都可以访问和操作的。

但这就存在一些问题,如果有玩家知道了类marine的一些代码结构,那他做个简单的补丁程序,运行的时候加载上去:

//补丁

marine::$attackNumber = 10000;

这样的话,他的机枪兵有10000的攻击力,呵呵,这样的话,谁打得过他!

为此我们要用private,表示这个属性只有类里面的函数才能访问:

class marine

{

private static $attackNumber = 10;//攻击力的数字

   // 这个函数表示机枪兵升级的运行代码
   function upgrade()

   {

      //这样防止无限升级

      if(self::$attacknum<13)

      {

      self::$attacknum++;

      }

   }

}

这样一来,只有升级才能改变机枪兵的攻击力。

但是现在往往是团队开发,而且很多用到类的继承,如果private的话,子类就无法访问了,但又不希望随便都可以修改某些属性。

那么可以用 protected,protected的属性可以被子类的函数访问。

六、重载

6.1、属性重载

如果我们把地面部队作为一个类,让机枪兵类来继承他,这时候如果地面部队类和机枪兵类里面都定义了攻击力$attackNumber,那么每个兵的攻击力就决定于机枪兵类,而不是地面部队。这就叫做重载。

//地面部队

class groundArmy

{

public $attackNumber = 5;

}

//机枪兵

class marine extends groundArmy

{

public $attackNumber = 10;//攻击力的数字

}

$m1 = new marine();//新建一个机枪兵

echo $m1->attackNumber;//显示攻击力为10

6.2、函数重载

重载也可以用于函数,子类的函数如果和父类函数同名,除非另行说明,否则子类的对象默认调用子类内的函数。

比如人族的鬼兵类ghost和神族类的黑暗圣堂类(隐刀),都是隐形兵种,但是鬼兵隐形的时候会减少能量,黑暗圣堂根本没有能量属性。

如果我们把隐形能力作为父类,鬼兵类 ghost和神族类的黑暗圣堂类DarkTemplar来继承它,同时实现不同的隐形代码:

//隐形能力类

class concealAbility

{

   //这个函数表示隐形的运行代码
   function conceal()

   {

      //隐形的运行代码

   }

}

// 鬼兵类

class ghost extends concealAbility

{

$energy = 150;

   // 这个函数表示隐形的运行代码
   function conceal()

   {

      //隐形的运行代码

      //减少鬼兵的能量,$this表示当前对象,也就是当前这个鬼兵

      $this->energy -= 25;

   }

}

//黑暗圣堂类

class DarkTemplar extends concealAbility

{

   // 这个函数表示隐形的运行代码
   function conceal()

   {

      //隐形的运行代码,不影响能量

   }

}

// 新建一个鬼兵

$g1 = new ghost();

//显示能量为150

echo $g1->energy;

// 鬼兵隐形

$g1->conceal();

//显示能量为125

echo $g1->energy;

//新建一个黑暗圣堂

$d1 = new DarkTemplar();

// 黑暗圣堂隐形,他没有能量属性

$g1->conceal();

七、接口

PHP不允许多重继承,那么有些问题就难办了。

假如为了规范处理,我们把隐形的能力建立一个类,然后把飞行能力放一个类,那么人族的侦察机怎么处理?不能继承两个类!

那我们不用继承也行,但是开发组的其他人一旦涉及到侦察机,要把长长的代码读一遍吗?有没有可能知道类的所有方法的简要描述?

可以用到接口interface,一个类可以执行(继承)多个接口,接口中定义的函数不能有函数体,执行接口的类必须将这些函数完整定义。

这样我们知道侦察机实现了飞行能力接口,必然有接口里面描述的飞行方法:

//隐形能力的接口

interface concealAbility

{

public function conceal();

}

//飞行能力的接口

interface flyAbility

{

public function fly();

}

//侦察机类

class Wraith implements flyAbility, concealAbility

{

   //这个函数表示侦察机飞行的运行代码
   function fly()

   {

      // 飞行的运行代码

   }

   //这个函数表示侦察机隐形的运行代码
   function conceal()

   {

      //隐形的运行代码

   }

}

八、总结

我们讨论了PHP面向对象的基本知识,通过星际争霸这一经典的游戏来说明,大家可以看到面向对象的初步作用。

我们看到通过面向对象可以使代码更加清晰,类将代码组织起来,比较方便的重复使用。

同时对象也减少了变量的冲突,方便相关性数据的保存和使用。

如果要解决的问题涉及很多方面,面向对象可以演化出更加灵活和有技巧的方式,比如通常提到的设计模式,和很多框架。

当然,面向对象也有缺点,从上面的代码可以看到,首先代码就多了,简单的任务如果定义许多类,反而麻烦。

对于简单任务,面向对象也可能使代码运行的效率降低。

深入的探讨,超出了本文的范围。

流传千古的经典策划案例

策划有多大力量?谁是策划大师?我们不妨从历史中找寻。
秦朝两名臣的千古策划案例
历史把笔墨更多地给了作为秦相、政治家、思想家的吕不韦,事实上,在此之前,他更是一位商业奇才。而观其一身,也不难看出,他出色的商业思维为他今后的政治生涯定下了基调。他的策划才能,营销谋略可谓古今中外之典范。
如今,能谋一市场,成一品牌者,我们且以“老师”或“专家”尊之,那么,像吕不韦这样,谋六国,成泱泱大国者,可谓之“圣”了,即便是如今,我们膜拜的现代营销之父菲利普·科特勒,恐怕也不及其一二。
对于吕不韦的商业才华,两个众所周知的典故,即可窥一斑而见全貌。
其一是奇货可居。秦子楚入赵国为人质,因期间秦国多次攻打赵国,故子楚在赵国的待遇也深受影响,生活困顿,很不得意。然而,凭着丰富而敏锐的商业直觉,吕不韦认为子楚“奇货可居”,是只潜力股,可以投资以待时日。正是这个引子,拉开了这位商业奇才的传奇政治生涯。
其二是一字千金。毕竟是商人出身,吕不韦官封秦相初时,朝廷官员多少有些不服气。吕不韦受孔子著《春秋》,孙武写《孙子兵法》的启示,命门下三千门客著书《吕氏春秋》,且将全文炒贴在咸阳城门上,并发布告曰:“增损一字,赏予千金。”这恐怕是古往今来,最有气魄的“炒作”了。
“奇货可居”与“一字千金”蕴涵的投资与商业智慧,至今仍然是备受推崇的商业思想,且极富现实指导意义。只不过,自吕不韦后,无人能出此二者左右也 。

另外一位在策划史上值得一书的,也是秦朝名臣,不过他早于吕不韦,他是卫鞅。如今,后人可能对其在秦朝为左庶长时推行的改革可能已经不记得了,但“立木为信”这个典故,globrand.com却一直为人津津乐道。没错,卫鞅正是这个流传千古的故事的策划人。当时新法初定,卫鞅为了树立法令的威信,引起全国对新法的重视,想了个办法,命人于咸阳南门口立了根三丈之木,并贴告示说,有谁能把它搬到北门,赏十金,一开始没有人响应,后来赏金涨到了五十金,终于有个人站了出来(不要考证这个人是不是个托),把木头搬到了北门,而他真的得到了五十金。这次策划,直接推动了新法令的颁布,为新法令的落实奠定了良好的舆论与民信氛围。
“立木为信”与“一字千金”有着异曲同工之处,放之如今,商业第一准则即为“诚信”,但,有几个企业有如此胆识,以此等方式,树立诚信典范?
桃园结义与三顾茅庐:最出色人力资源组织策划
(备注:当然,这两个案例是根据《三国演义》之版本,为做历史考证,如果史书并为有此事,那此案例权且记在罗贯中名下。)
这两个案例的组织策划者,有三个人,汉皇叔刘备、红脸关公,黑脸张飞,黑白红分明。而刘备为核心。
桃园三结义时,刘备是个卖草席的,张飞是个卖酒屠猪的,关羽是个逃难的杀人犯。唯一有背景的刘备,也只是落魄皇室宗亲。在桃花盛开的日子里,三人却上演了一出千古佳话,即桃园结义。
此事不久,刘备又携关张三去诸葛亮的草庐请其出山,成就了“三顾茅庐”的佳话。放到今天,刘备即便不是一个完美的CEO,也绝对是一个出色的CHO(人力资源总监)。此人不但善于策划,且颇能识人善用。诸葛亮何等大智慧,也错看马谡,而刘备早前已经提醒过诸葛亮此人“言过其实”。
这两宗策划,为刘备树立了重视人才,有情有义的名声。在纷争乱世,得人才者可争天下,刘备以此为基础,招揽了一大批人才,后有三国鼎立之局面。

商海沉浮:荣智健的红与黑

  如果从上市那一天算起,中信泰富不过18岁,即使失去了创始人荣智健,它以后的路也还很长。但是,荣智健已经67岁,失去了自己用十八年时间打造的商业王国,很难再有下一个十八年。这位“红色资本家”的故事,似乎已经锁定在这样一个黑色的结局
  2009年4月8日,中信集团发布公告,同意荣智健辞去中信泰富董事长一职。以67岁的年纪离开自己一手创建的公司,荣智健的心情可想而知,更何况,他还留下了100多亿港元的巨额亏损。

  荣智健辞职,相比他的公司中信泰富,世人更关注的是他的家族——荣氏家族未来的命运。荣氏家族兴起于20世纪初,那也是中国近代历史上碰撞最激烈的时代。从荣宗敬、荣德生兄弟,到荣毅仁,再到荣智健,历经军阀混战、抗日战争、解放战争、文化大革命等重大历史事件,这个家族的兴盛延续了近百年。阅读这个家族的每一个人、每一个故事,人们往往能看到一个时代的沉浮和变迁。
  荣智健也不例外。1978年,荣智健只身南下香港创业,在中国改革开放三十年后,这位“红色资本家”,却面临一个黑色的结局。
  “澳元门”——荣氏的全面溃退
  2009年3月25日,在香港太古广场会议中心,荣智健出席了中信泰富的业绩新闻发布会。当时,荣智健也许已经知道,这将是自己最后一次作为董事局主席,出席中信泰富的发布会。即使如此,面对记者的提问,“这次是不是中信泰富有史以来第一次亏损?”荣智健依然镇定地回答:“是的。”同时,他强调,他对中国经济有信心,2009年中信泰富一定会盈利。
  2009年4月3日,香港证券及期货事务监察委员会及香港警方开始调查中信泰富,以确认公司是否有“做出虚假陈述”或者“串谋欺诈”等违规行为。五天以后,荣智健正式离开中信泰富董事局主席的位置,跟随他一起离职的,还有追随他多年的中信泰富董事、总经理范鸿龄。荣智健的女儿、中信泰富财务主管荣明方已于此前被调离财务部,并降级减薪。有媒体评论,这是荣氏家族在中信泰富体系的全面溃退。
  众所周知,荣智健离职的直接原因,是中信泰富的杠杆式外汇买卖合约亏损100多亿港元。
  中信泰富在澳大利亚有一个铁矿项目,该项目总投资约42亿美元,很多设备和投入都必须以澳元来支付。当时的汇市普遍看涨澳元,看跌美元,为了降低货币风险,中信泰富于2008年7月签订了3份杠杆式外汇买卖合约,这桩交易赌的就是美元兑澳元的汇率。如果美元持续贬值,澳元升值,则中信泰富赚钱;反之,则中信泰富亏损。中信泰富赌澳元升值,买入了90亿澳元期货,远远超出了公司的实际需求。天有不测风云!金融危机爆发后,澳大利亚的实体经济受到沉重打击,澳元兑美元持续贬值。然而,中信泰富只能以合约的规定,以远远高于市场价的价格买下澳元,由此造成巨额亏损。
  2008年,因金融衍生品交易而亏损的中国企业不在少数,包括中国中铁(6.74,0.00,0.00%)、国际航空、东方航空(5.33,0.00,0.00%)、碧桂园,等等;中信泰富并不是唯一的一家。而且,荣智健毕竟是荣氏家族的第三代,前国家副主席荣毅仁的独生子,他身上耀眼的“红色”映照香江两岸。即便如此,荣智健还是“下课”了。在他“下课”之前,某著名网站做了一个调查,有82%的人认为,荣智健应该辞职。温家宝总理也公开表示,对中信泰富发生的问题,内地和其他各个方面都不干预。“对于荣智健的黯然引退,香港媒体也没有给予同情,媒体上一片幸灾乐祸的声音。”知名财经作家吴晓波在接受《新财经》记者采访时说。
  资本家VS红色的中国
  由“红”到“黑”,荣智健的故事,每一个情节都能读出历史的烙印。
  对于荣氏家族,毛泽东的评价十分精辟:“荣家是中国民族资本家的首户,中国在世界上真正称得上是财团的,就只有他们一家。” 在那个动荡的年代里,正是因为人民政府认可荣家的特殊地位,荣家才得以在解放后,在保留其“资本家”身份的情况下过着平安的生活,这种生活一直持续到“文革”之前。
  1948年底,大半个中国已经解放,国民党“政府”的统治岌岌可危。上海不少商人纷纷迁居海外。1948年11月,荣宗敬的长子荣鸿元因套购外汇被国民党“政府”判处缓刑,后交了100万美元才被释放。不久,荣鸿元就去了香港,最后远走巴西。其弟荣鸿三、荣鸿庆和荣德生之子荣尔仁、荣研仁等也先后离开上海。
  在最后关头,荣德生和荣毅仁父子经再三斟酌,决定留在大陆。1949年,荣智健7岁。在《荣智健传》中,他这样回忆自己的童年生活:“我家在上海的大房子是私产,家里有多个佣人和中西菜厨师。父亲出入乘坐别克,后来换了一辆奔驰300。连国外的亲戚都羡慕我家的生活,因为比他们还要优越。”1952年,10岁的荣智健第一次开车,开的是父亲送的一辆红色的英国敞篷跑车。
  1957年,荣毅仁在公私合营运动中率先接受改造,把家族企业交给了国家,自己成了上海市副市长。这一举动为他赢得了“红色资本家”的称号。这一举动还意味着,由荣德生创办的荣氏家族企业变成了国有企业,荣家不再是纯粹的商人。自此之后,荣家的所有商业活动都发生了质的变化。
  公私合营完成后,荣家的生活并没有发生显著变化。一些认识荣智健的人回忆,当时十六七岁的荣智健是上海有名的“荣公子”,他开着红色的英式敞篷跑车,请朋友去国际饭店、红房子吃饭。这些举动在当时非常扎眼。
  1959年,荣智健考上天津大学电机工程系,离家北上。荣智健回忆大学生活时说:“在天津大学的时候,生活比在家里要艰苦得多,可是我却有条件请大伙儿吃饭,上学校小食堂吃顿排骨。因此,我在同学们的眼中显然是一个明珠。”当时,大跃进运动席卷整个中国,吃排骨绝对属于奢侈享受。荣智健业余爱好也与众不同,是许多普通中国人闻所未闻的棒球。
  不久,“文化大革命”爆发,荣家未能幸免,荣智健也受到牵连。1966年,他被下放到四川凉山彝族自治州龚嘴水电站,接受劳动教育。从未吃过苦的荣智健连续坐了五天五夜的火车才到达四川,当地的环境比他想象的还要恶劣。“虽说是做技术工作,实际上却是很艰苦的体力劳动,抬路轨、抬大石头、背75公斤重的烧焊氧气瓶上山下乡、高空安装高压电缆……经常吃的是四川人叫做红苕的地瓜。头一年,我基本上失去了自由,起居劳动都有人看管。”在荣智健卖力干活的时候,他的父亲荣毅仁正在北京的工商联大院里打扫厕所,荣毅仁甚至还自掏腰包买了盐酸,把厕所擦洗得干干净净。而此时,荣智健的堂兄、荣毅仁的侄子,1949年离开中国大陆的荣智鑫正在香港经营美联烟草公司。
  “文革”时期的下放,是荣智健人生中绝无仅有的吃苦经历,空前也绝后。荣智健后来回忆起“文革”,总是说那段经历磨砺了自己的性格。无论如何,对于荣智健而言,“文革”是一段黑色的记忆。
  资本家VS开放的中国
  “1978年改革开放之后,百废待兴,国家要搞经济建设。荣毅仁、王光英这些著名的民族资本家‘重操旧业’。国家需要这些标签式的人物。他们的成功,是特定的历史时期造就的。” 北京大学社会学系教授郑也夫在接受《新财经》记者采访时说。
  1979年,国家决定成立中信公司,荣毅仁任董事长兼总经理。公司的主要任务就是吸收并运用外资,引进先进技术,进口先进设备,投资国内。邓小平和叶剑英都认为,由荣毅仁来主持中信公司是最合适的:荣氏家族有400多位亲属分布在世界各地,其中大多都是工商界及科技界知名人士,同时,荣毅仁与政府的关系也非比寻常。中信拥有政府的全力支持和荣氏家族的影响力,成功也在情理之中。荣毅仁这位“红色资本家”,在为国家作出了贡献的同时,也延续了荣氏家族的繁华。“‘中信模式’是无法复制的。”复旦大学中国经济研究中心主任张军说。
  “资本家”不再是罪恶的代名词,商人有了更多的活动空间。父亲的事业蒸蒸日上的同时,儿子荣智健也认为,还是商海更适合自己。于是他告别妻儿,揣着一张去往香港的单程通行证,南下去开拓自己的事业。荣智健成功之后,曾不止一次在公开场合表示:“我没有想靠父亲来做些什么。靠别人的名望来做事,长不了,也许一时一事可以,但并不能解决自己的根本问题。” 但是,回顾荣智健个人奋斗史中的几个关键节点,几乎都与父亲和荣氏家族脱不开关系。
  荣智健起家的资金就是家族提供的。荣家在香港有一些资产,主要是纺织厂的股份,这些股份的股息从1949年起就没有动用,因而积下了一笔钱,约有100万港元。1978年,荣智健用这笔钱与两个堂弟合资开办了爱卡电子厂。1982年,美国一家公司以1200万美元价格收购了爱卡电子厂,荣智健分得720万美元。荣智健登上财富生涯的第二级台阶,也借助了家族的关系,如果没有五姑父唐熊源的女儿唐芙生的介绍,荣智健不会认识在美国电脑业享有盛名的林铭和米歇尔·弗尤尔,他的加州自动设计公司(简称CADI)也就不会存在。从1978年到1984年,短短六年间,荣智健办了两家公司,并在公司行情最好的时候将所持股票套现,他的财富增值400余倍,超过4亿港元。有媒体评论说,荣智健这一阶段的成功,首先得益于家族传承和家族的关系,他本人也从中学到了商业游戏规则。
  北京与香港:
  荣智健的前台与后台
  真正让荣智健跻身顶级富豪行列的,是加盟中信集团。在这里,荣智健将“红”与“黑”发挥到了极致。他在政治中心北京和金融中心香港之间频频往返,财富也在飞速膨胀。在一家国有企业任职,凭借个人持有的股份而四度坐上“中国首富”的宝座,荣智健是全中国唯一的一例。
  1987年,荣智健受聘担任香港中信副董事长兼总经理。他提出的条件颇值得玩味,那就是,“用人制度自主”和“相当的权力”。从一开始,荣智健就打算把香港中信打造成自己的独立王国。香港中信归属于中信集团,荣智健的父亲荣毅仁——中信集团董事长同意了这两个条件。
  走马上任之后,荣智健开始了一系列令人眼花缭乱的并购,被后人称为“收购香港”。荣智健的第一个收购对象,是当时刚上市成功的国泰航空公司。但是,这一计划遭到了香港中信董事会的反对。但是,荣智健不是一般人,他的应对措施干脆利落:北上北京,去找父亲荣毅仁。不久之后,国务院同意他的计划,还借给他8亿元做收购资金。1987年1月,荣智健完成了自己的第一个收购案。香港中信成为国泰航空第三大股东,那一年,荣智健45岁。
  从此之后,荣智健的行为模式变得有章可循:只要香港中信与他意见相左,他就绕过董事会,直接上北京。
  1990年之后,荣智健开始考虑推动香港中信上市。他使用了借壳上市的办法,借用泰富发展这个壳,最终成功。1991年泰富发展正式更名为中信泰富,荣智健任董事长。通过一次次蛇吞象的并购,中信富泰在荣智健的手中不断发展,从房地产、贸易到隧道、再到民航、发电……各种实业,包罗万象。但在欧美资本大鳄眼中,中信泰富只是一只“纸老虎”。据《荣智健传》记载:欧美商人们认为,尽管中信泰富拥有多家蓝筹股公司的股权,但其本身没有主营业务,而且投资经历尚浅,不适合作长线投资对象。外国人的不信任并没有妨碍中信泰富的发展。香港、北京,进可攻退可守,中信泰富愈长愈大,港人称之为“紫筹股”,即蓝筹股的外面,还蒙有一层红色。
  1996年,荣毅仁任国家副主席。荣智健向当时的中信集团董事长王军提出分家请求,要求中信泰富的管理层获得股权。当时,在中信集团内部,没有人相信王军会同意荣智健的请求,但他们错了。最后,荣智健的目的达到了,以他为首的管理层获得了25%的股权,荣智健成为中信泰富第二大股东。时过境迁,王军曾对媒体坦陈,这次股份的出让,是他的“独断专行”。
  1997年,在股权变更的第二年,亚洲金融危机爆发,荣智健的应对措施与以往一样:北上北京。中信集团一如既往地支持他,给了他10多亿港元。
  直到这次危机爆发之前,荣智健一直这样“稳健”地经营着他的中信泰富。
  谁害了荣智健
  2008年,美国金融危机席卷全球。这一次,中信泰富的危机也比以往任何一次都严重: “紫筹股”中信泰富栽了大跟头。此时,母公司中信集团又一次扮演了“救世主”角色,把中信泰富扶了起来。但这一次,荣智健却没能稳坐高位,只能与自己创建的中信泰富挥手作别。
  事实上,如果从上市那一天算起,中信泰富不过18岁,即使失去了创始人荣智健,它以后的路也还很长。但是,荣智健已经67岁,失去了自己用十八年时间打造的商业王国,很难再有下一个十八年,他的故事,似乎已经锁定了这样一个黑色的结局。
  回顾荣智健六十七年人生,三十年商海沉浮,很难用“成功”或“失败”这样的词语为他作解。
  资深企业战略咨询师朱志砺撰文指出,背景决定前景,从一开始,荣智健的成功就与他的红色背景息息相关。同样,荣智健的谢幕,也与他的背景直接相关:他赚钱太容易了。荣智健的一系列收购活动,都有中信集团在背后“保驾护航”。在经营方面,他旗下的大昌贸易主营家电与汽车,主要市场就在国内,在批文、配额方面自然享有优先权。
  荣智健与李嘉诚的投资业务比较相近,都集中在能源、资源、电信、航运、基础设施等方面;公司性质也很相似,都是综合类实业投资公司。但两人的出身有很大差异。李嘉诚是“草根”出身,白手起家,深知每一分钱都来之不易。所以,李嘉诚的投资项目从战略布局到过程管理,都非常严谨。荣智健的战略前瞻眼光非同一般,但是,他是一个潇洒的“公子哥”,作风显然有别于“草根”李嘉诚,他没有建立起一个有效的风险控制机制。对于巨额亏损,荣智健甚至解释道:中信泰富财务董事张立宪未遵守公司对冲风险的规定,进行交易前也未经主席(是指中信泰富董事局主席,即荣智健本人)批准,财务总监周志贤未尽其监督职责,将这样不寻常的对冲交易上报提请主席关注。另外,据知情人士透露,负责公司财务的并非张立宪和周志贤,而是荣智健的女儿荣明方。他们父女如何运作这桩交易,外人自然难以知晓。总而言之,即使荣智健所言不虚,但上百亿元的交易,竟然无须董事局主席授权就能生效,荣氏企业的管理无序和决策盲动由此可见一斑,所以,出现亏损只不过是时间早晚而已。
  知名财经作家吴晓波认为,荣智健的错误主要有两个。第一,没有择机让荣家的资本完全独立。在1949年之前,荣家一直是纯粹的民营资本企业,与官营资本几乎没有任何瓜葛。荣氏家族对官商经济一直非常警惕。但是,荣智健没有继承这个传统。自1991年上市起,中信泰富基本上是荣智健的天下,外界也将中信泰富看做是“荣氏企业”,他本人也只有在公司遇到危机时,才想起公司真正的主人是中信集团。“荣智健刚刚到中信任职的时候,中信的掌舵人是他父亲荣毅仁。后来,王军出任董事长,王家和荣家的关系也非同一般。所以,1996年,荣智健才有机会获得那么多的股份。但是,2005年荣毅仁去世,2006年王军卸任,荣智健在中信体系内所能动用的资源已经越来越有限,他基本上丧失了资本独立的机会。”吴晓波说。
  第二,“荣智健不懂政治。”吴晓波认为,荣智健实际上选择了一条相对简单的商业路径,“他从香港起家,主要的经营活动都在香港和海外进行,对中国大陆的商业环境、政商关系根本不了解。但是,他背靠的中信集团却是国有企业。像他这样,赚钱在香港,出了问题,又要中信解围,成功确实很容易,失败也很容易。”
  一个人和一个家族
  荣智健的突然谢幕,引发了人们对荣氏家族的关注。“一个家族的百年背影”,有媒体以此为标题撰写荣智健和荣氏家族的故事。荣氏家族
  会就此衰落吗?“富不过三代”的魔咒难道真的如此灵验?
  “在荣氏家族的历史上,1949年新中国成立是一个分水岭。在此之前,荣家是纯粹的民营企业家;在此之后,荣家的身份和地位要复杂得多。”郑也夫教授认为,荣氏家族企业早在1956年公私合营时就已经结束。改革开放初期,因为中国政府要借用“荣氏家族”这块金字招牌,才起用荣毅仁创建中信集团,后来他又成为国家副主席。荣智健在香港的发迹,主要是受父亲的庇荫,而不是家族的传承。
  “之所以还把荣家与中信等同在一起,是人们还留恋这种家族传奇。但对企业来说,荣智健的离去是一种必然。如今依靠头面人物来为大企业牵头的时代早已结束了。”学者傅国涌在接受媒体采访时说。
  “百年家族岂是区区100多亿元的亏损就能击倒的?荣智健本人的失败,并不意味着荣氏家族势力的衰落,荣氏家族支脉繁盛,像荣智鑫、荣文渊,等等;不少人都事业有成。”吴晓波有着不一样的观点,“而且,虽然荣智健的财富缩水33亿美元,但是,他仍然持有中信泰富11%的股份,只要不涉及刑事纠纷,仍然有可能东山再起。”
  辞职后,荣智健套现7.23亿
  辞去中信泰富董事局主席一职后,荣智健对中信泰富的态度也随之发生改变。2009年5月,市场传出消息,荣智健以每股11.95~12.20港元卖出6000万股中信泰富股权,最多将套现7.32亿港元。
  数据显示,截至2008年底,荣智健持有中信泰富4.06亿股,为该公司第二大股东,占总股本的19.12%;中信集团持有中信泰富6.359亿股,为第一大股东,占总股本的28.747%。
  荣智健在2005年12月5日获得1亿股认股权,可以在2008年12月5日至2010年12月4日期间,以每股20.50港元的价格行权。外界认为,并不排除荣氏进一步将中信泰富彻底改制为家族企业的设想。但根据中信泰富2008年报显示,在2008年年底的外汇衍生品巨亏丑闻后,荣智健放弃了这部分认购权。中信集团注资后持股比例从29.4%扩至57.6%。而荣智健的股权则被稀释到11.53%,此次荣氏再次低价抛售,其持股比例将进一步下滑。
  资料显示,中信泰富总股本60亿股,此次抛售比例正好为公司总股本的1%,此次抛售之后,荣氏在中信泰富的持股权重将下降至10.53%。
  荣智健此举耐人寻味,他的行为引发了三个猜想。第一,荣智健是否会继续减持?第二,荣智健是否看好中信集团接手后的中信泰富?他与中信集团之间是否发生了重大矛盾?第三,作为一个被调查的富翁,突然套现7亿多港元的用途是什么,赔款或者保金或者补其他投资的漏洞或者东山再起?
  有专业人士认为,荣智健的变现行为,可能意味着荣氏家族正计划全面退出中信泰富。