构建Wordpress网站首选的5家国外主机

随着WordPress3.0的发布,有越来越多的朋友打算用Wordpress搭建自己的网站,其中不乏企业用户。前段时间有位某提倡低碳理念协 会的朋友找我为他们的网站“巴马小屋”设计一款主题,同时整合buddypress作为自己网站的会员交流平台,当时一边制作一边寻思着多多少少的意 外,Wordpress在国内的应用程度比想象当中要广泛很多很多。网站建成后,又也有很多用户向我询问关于Wordpress主机的选择,尤其是国外主 机,所以趁着Wordpress发扬光大的大好时机,研究和整理了一些国外主机的资料,下面将详细介绍一下,首选的5家国外Wordpress主机的情 况,暂时忽略Media temple这类的贵族主机,谁都知道他们很优质不是吗,除此之外希望本篇文章可以给用户更多的选择和参考。

1. HostGator

之所以第一个推荐HostGator,是因为Wheatv.com就是一直运行在Hostgator上,从切身体会来说,至少是我接触过的一些国外 主机中,在国内访问速度最快,并且最稳定的,运行一年多,几乎没有出过什么问题。不过Hostgator的购买有些麻烦,他们的审查相当严格,我曾用 live chat和他们的客服咨询过,购买他们的主机,需要身份审核,有两种方式,第一种是电话审核,第二种是发送身份证扫描图片给他们确认,正因为这个门槛,很 多国内的用户不能购买和使用到hostgator的主机,但从另一个方面来说也是件好事,不会有很多中文的打擦边球的网站,这样被墙的几率很小。不过价格 偏贵。

Hostgator官方网站:www.hostgator.com

2. Bluehost

Bluehost是我这两天刚刚购买的,打开速度上比起建立在hostgator上的网站略慢一些,因为使用时间不长,稳定性自身还没有充分体会, 但得知大名鼎鼎的Wpchina就是运行在bluehost上,我本人是经常去这个网站,鉴于此原因来考察,能支持一个访问量较大的网站稳定运行几年的主 机,稳定性应该不差。Bluehost同样对Wordpress的支持非常完美,并且支持用户启用SSH功能,对于觉得在国内使用FTP管理文件速度不够 快的用户来说,SSH功能真是个很好的解决办法,可以相当快速的支持远程部署,不过需要额外发送邮件来申请开通。值得提醒的是,当你打开bluehost 主页时,不要被无限空间无限流量之类的描述所过分感染,其实CPU一样有限制,占有资源过多时,依然会被关闭网站,所以不适合做视频,音频,图片下载网 站,但如果你打算利用bluehost写博客,做内容型的网站的话,即便日IP一万左右,也是相安无事的。

Bluehost官方网站:www.bluehost.com

3. WPWebhost

WPWebhost可能大家比较陌生,这是一家专注Wordpress作为主要服务的提供商,他们的主要特色在于,在这里花和其他主机一样的价钱, 却可以额外得到他们的免费wordpress技术支持,协助你解决wordpress建站过程中的难点和问题,WPWebHost 称自己有 2-3 年的使用,定制和 Hack WordPress 的经验,他们使用 WordPress 建立过很多站点,修改和定制过非常多的 WordPress 插件和主题,所以任何和 WordPress 相关的技术问题他们都能解决。所以选择他们的主机服务,也得到了 WordPress 技术支持。这一点从他们的名字当中便可以看的出来。

WPWebhost官方网站:www.wpwebhost.com

4. Sugarhosts

这是一家成立不久的英国主机服务商,不过据说创建者是华人,他们很重视国内市场,也许是盯上了这几年国内环境的限制吧,这家主机支持支付宝付款,并 且价格相当便宜,从数据上来看性价比还是很高的,只是流量有些少,不过对于一般的博客用户来说还是相当值得一试,网上对这家主机的正面评价比较多,目前我 有一个网站(演示: www.hoyard.com )运行在上面有几个月时间,整体来说还是比较稳定的,但有两次宕机,不过很快就恢复过来了。如果你的预算不是很高,而且在起步阶段的 话,Sugarhosts倒是一个不错的起点。

Sugarhosts官方网站:www.sugarhosts.com

5. Justhost

Just Host同样是一家国外新兴的主机商,总部位于英国,澳大利亚有一个办事处,数据中心位于美国伊利诺伊州芝加哥市。虽然是一个新兴的主机商,但是在国外也 比较受用户好评。Just Host主机计划提供免费的域名,允许你使用自己的cPanel账户,支持电子商务功能。同时Just Host还提供各种档次的专用主机,并且允许用户按自己的需求定制。

之所以推荐Justhost是因为他的稳定性,朋友搞的女性时尚网站在上面运行了很久后反映,Justhost还是相当的稳定,不过速度很一般,追 求稳定性为主的朋友可以考虑一下这家主机,而且价格和sugarhosts一样,都属于比较低的,大多Wordpress用户都可以承担的起。

Justhost官方网站:www.justhost.com

以上推荐仅供参考,如果有什么好的主机也希望大家互相交流。如果对选择主机方案还是没太多思路的话,欢迎发邮件到我的邮箱,我可以帮助你分析和推荐一些适合您的方案。

广州货源进货内幕全攻略

众所周知,广州是全球闻名的服装和小商品批发地之一。但是在这块寸土寸金之地,同样有着不同的价格,作为一个生意人,一个长期的优质货源 有多么重要不言而喻。我接触过许多外地来的朋友都抱怨:广州这么大,好货源哪里找呢?确实,即使是广州市内,也有很多挂羊头卖狗肉的地方,举个例子,我曾 经在广园新村看见一个箱子40元,在一德路就卖180,还声称广州最低价!这是这两天亲眼看到的。同时,一笔经济账将外来的朋友压的喘不过气来,多数朋友 选择在广州火车站商圈住宿,每天的住宿费动辄两三百元,加上其他费用,每天三百元是打不住的。就算如此,也很难清楚火车站商圈的货源,更别说更多有优质货 源的其他地方了,好多朋友来了两天就草草的结束广州的“打货”之旅,不但没有找到优质的货源,反而要因此经常往返于广州真是得不偿失。根据我在广州1年的 工作经验和同事朋友的帮助,加之我一直非常想跳出来做生意,可以说将广州各大批发市场跑的烂熟。今天就来整理一下广州服装货源,希望对寻找货源的新手们有 所帮助,不敢说价格全国最低的,毕竟别人做生意也要赚钱,但是绝对全国绝大多数市场打货的主流集散地,为什么我敢这么说呢,因为我是武汉人,武汉有个华中 批发重镇,天下第一街汉正街,相信各位也有所耳闻吧,但是相对这里的货源,价格还是不是一个档次的,我有些朋友做汉正街的都是跑到广州来拿货,有的甚至在 白马拿货(白马的价格是比较高的),所以对于个体散户,今天列举的货源优势不言而喻。如果是大批发人士还是去中山的一些小镇小作坊拿货吧,1W件起打包不 选款的那种,价格相当便宜。

1.广州火车站商圈
广州白马商圈:以火车站为依托,以外贸为旗号(当然确实不少外贸精品,这里老外也多嘿嘿。 但我可以爆个内幕,俺朋友家里是做服装的,白马附近好多服装是沙河或者十三行的低档货,常常拿10来块的货在这边卖50,80甚至更多的也有),也包括往 站西那边走的路上几个纯外贸服装的商城和火车站的地五大道,地下错综复杂的服装档口网络延续了数站路,出口有数十个之多,新手真的会在里面迷路,可惜这里 面多是做老外的生意,中国人去了常常会被冷眼相待。这边的老板真的不愁生意,统一的特点就是有现货,他们囤积了大量的货,你在这边很难讲价的原因就是附近 好多家都是一个老板的产业,他们将价格规定死了,我姨妈的朋友,她女儿就是这里的老板,每年从广州沙河拿几千万的货去澳大利亚卖,同时在这边有6间连着的 档口,货源都是来自日本韩国,但是人家采取保密的态度也不太好打听。
这个商圈是许多学生卖家和年轻人喜欢打货的地点,因为一是离火车站进,没理由舍近求远的心理在作祟,还有就是这里的服装真的很吸引人,再加上穿着火辣态度 热情的辣妹,很容易就敞开腰包认她们宰你温柔一刀了!每次看着一个个热火朝天在挑选衣物的靓妹们我都不禁从心底发出一声慧慈常用的惊叹:OH~MY GOD!~~~~很多人也许来广州好多次才能发现,这边的货回去跟当地的服装在价格上并没有很明显的优势,甚至价格上有过之而无不及,因为这边的货普遍特 点就是靓而贵,而且基本上都是采取一个大店铺请许多靓妹的形式,所以也很难讲价。适合高档地段,目标人群起码是公司白领,对生活品质有一定追求的受众群 体。如果是一些普通的地段,中低或者大众化群体消费的服装,真的不推荐在这里拿货。其实做生意的老手想想就知道了,火车站这种黄金地段,那种商业氛围下租 金多少不言而喻,每年租金十几万甚至几十万的”小“店并不在少数。
作者评级:★★★
理由:价格偏高并有少量以次充好
适合人群:以外贸为旗号,针对高中端,注重商品质量,销路十分通畅的卖家
普遍价格区间:100左右或以上每件

这里就是白马了,go,卡按靓女去咯

不让拍照的,趁保安哥哥没来,咔嚓~~咔嚓~~(就这样仍在地上的货也不便宜啊)

白马的人气没的说,一大早就不少人了

嘿嘿,斜对面的步步高,武汉宾馆对面,武汉宾馆跟我有很大的渊源啊!!!

卖皮草的,不要怀疑,虽然10月底了我还穿着短袖短裤,但是广州有很多南半球的人在打货的,春夏秋冬都有卖棉袄和短袖的,这里的老外,一个字~~~~太多啦!

红棉,不介绍了,没啥特色

红棉逛一逛还行,打货嘛~~~

超级B,T的地下商城,绵延N站路,有几十个出口不说,还延伸到地下好几层,这里批发零售都有,不推荐批发,主要是黑人才在里面打货,里面有很多和他们口味的鲜艳的有蛇啊莽啊骷髅啊那些图案的衣服 - - ~~

到处都是出口,晕死,新手推荐带个指南针进去 - -

接下来就是白马旁边的什么马什么马的啦,一马

天马等等等还有好几个马,相机快没电啦

下面的天马女人街也值得去逛逛,可是如果你不会说粤语的话很吃亏。下次你就说:黎gin衫掂卖(卖读买的音)哈哈哈哈,开玩笑,慢慢习惯就好啦,大大的杀价啦

2.站西商圈
这 里是很多年轻人潮人的必到之地,位于广州火车站西,许多潮人潮衫都出自这里(冠希哥的潮服在这可是很受欢迎的捏),同样,这边真正的有工厂有手工作坊的工 厂主比较少在这边扎寨,有的老板和工厂是有合作的,这里能淘到一些物美价廉好东西。价位比白马商圈要便宜一些,质量方面属于中档,款式一般跟着瑞丽等时尚 杂志走,好多年轻潮人和靓女在这边打货的,淘宝上很多服装这边也有的卖,说句我自己猜测的,卖服装的有一半左右甚至更多都是来自广州的货源,这里当然是重 镇之一。总之这里非常适合定位中等的潮人辣妹帅哥来淘淘服装,作为货源的话还需要反复的筛选,千万不要看到了喜欢的就头脑发热,买了去,还是要精挑细选, 补充一点,这里比白马商圈容易还价,因为毕竟这边都是中小卖家,这就要看个人的功力了。

站西路通道(这是从钟表批发城过来的路,后面会介绍钟表货源)

右转就是金顺,相信很多打货的很熟悉吧

汇美,不说了经常打货的一定知道,这里虽然贵,但是确实是进口货,档次跟白马那边差不多,算是站西最高档次的一个商场

站西的主要打货点,不过这里有点杂,还是到对面的打货吧,区位集中很多,物美价廉

当当当当,站西服装城,就是这里了,go


作者评级:★★★★
理由:价格和质量中等,款式齐全,符合当下年轻人的口味
适合人群:年轻人,潮人,靓妹
价格区间:30~100每件   有低有高
3.沙河商圈,十三行(重点介绍)
好 多新手受老卖家的蛊惑:“那边都是些低档货”!确实,这里都是些低档货,但是绝对是80%的卖家的首选,因为这里有各位来广州的梦想,便宜。在这里我只能 说,没有最低,只有更低。其实好多朋友买的衣服都是出自这里的,不要看他一百十几块甚至更贵,经过一层层的转手确实价格高到有点离谱也是正常的了。毕竟服 装业目前来说还是个热门的暴利行业。
广州沙河无疑是广州服装最大的集散地,像广州的十三行,站西路,白马都有很多老板会去沙河淘货。这里就像一个 大染缸,有好有次,有优有良,当然如果你想在这里买到所谓的外贸货可能没有,但是绝对有你需要的东西!沙河服装批发早上开门的时间可能是广州所有的服装批 发市场最早的,大概在3.4点的时候就开始了,这有点像武汉的汉正街,真正的老卖家都是凌晨4,5点拿货的。一般说来3.4点去拿货的人一般都是广州别的 服装批发市场的老板去那里淘货,他们拿完货回去之后就要自己开门做生意了,还有在少数时候要是你运气好的话还可以碰到商家的尾货在甩,价格非常的便宜,一 般都是按斤算的,广州的人称之为发霉货,听这个词就知道它有多便宜了,简直到了“血腥”的地步!小弟不才,就喜欢逛逛批发市场,去年大四没上课,在这边工 作的时候一边考察货源,曾经看到甩卖女士短T恤,1元一件,不挑款,要知道,这都是在外面市场至少卖20元的款。我在武汉的汉正街亲眼看到同款卖30元, 批发价呀!昧良心的!即使是平常,这种许多女大学生,无知少女喜欢穿的T恤,在这边的状元坊,上下九也能以8元到10元的价格搞定。拿到其他市场上真的想 不赚都不行啊!
沙河大的服装批发城有万佳批发市场,沙河第一,第二成衣批发市场,沙东有利批发市场南城,沙东有利国际服装批发市场等,要耐心,要有脚力,如果你是娇滴滴 的女子,请穿球鞋,因为穿高跟鞋的,穿着得体大方的妹子们在这边是很难得到满意的报价的,一看也不像是个打货的,比较像是逛街的,总之打扮害死猫啊。
因 为市场普遍开始做生意的时间早,所以关门的时间也比较早。一般在旺季的时候做到下午五点左右,但是有的一两点就开始关门歇业了。要是淡季的话一般在11点 左右就有商家开始关门了。所以你要是打算到沙河拿货的话那就要去的比较早,勤奋点嘛,勤能补拙,天道酬勤,早起的鸟儿有虫吃,早起的虫儿被鸟吃(- - )。。。就是这个道理了。一般像比较远的进货商都是在5.6点就开始去打货了。
沙河做服装的商家一般都是自产自销,所以他们一般都是按照一天大概卖多少件就做多少件,看见自己满意的货要是有现货的话就马上拿了,这一点就很考你的眼力 了,不然一些比较热销的款你去拿货的时候都只能等第二天或是下订单第二天来取,怎么和老板谈这就看个人的素养了。不过这里的老板真的很朴实,没有白马那边 的架子,一边是靠薄利多销,一边靠暴利致富。。。。扯远了。我曾经和一个很厉害的雪纺衫老板聊了一下,她的衣服很便宜也很赞,通过我的三寸不烂之舌和软磨 硬泡功,她妥协了,从她口中得知,基本上她们都有自己的档口,早上卖衣服之余翻翻国外的杂志什么,觉得好的就马上要店里的人去打板,下午或者晚上就能出 货,不禁又要引用慧慈的一句“OH~MY GOD!”!再强调的一点就是广州的行规,就是“拿货”和“打包”是两个概念,一件10块的女装可能会波动2元左右,拿货就是混拿,每件拿个两三件的,但 是如果你每款10件甚至更多打包,要的量大,就会给打包价你了。
下面谈谈拿了那么多货怎么办的事,沙河拿货发物流的话非常方便,每一层都会有物流公司搬运工在揽活,一般帮你搬货去物流公司是10块钱而且他们会帮你把货 物用编制袋打好包裹,如果你要是拿的货比较多不想带着货物逛的话你可以把货存在批发商的挡口那里。不过一定要记得千万别把小票弄丢,等你全都拿完了要走的 时候你可以把小票给搬运工让他们帮你去取货在一起搬下去(你可以多问批发商要一张小票)。沙河的物流快的一般是三天到,慢的一般在四天左右,价格相差 3-5毛钱/公斤。都为了生活不容易啊,但是别小看这里都是些小档口的老板,广州的好多别“野”,都是他们的囊中之物。
作者评级:★★★★★★★
理由:全国最好的中低档服装货源之一,只有想不到的价格,没有买不到的价格
适合人群:中低端平民化路线的大中小老板,小店店主
普遍价格区间:10~30每件  甚至更低

沙河就不发图片了,免得各位到了反而觉得不新鲜了!我敢保证,廉泉路,沙河,不会让你们失望的,嘿嘿~

最 后要说的是这篇文章花了不少的时间才成型,所有图片都是本人拍摄,文字有少量借鉴其他文章的数据,但是90%还是本人亲笔,所以请各位尊重一下个人的劳动 成果,转载请注明出处。说的不好的或者触犯谁的利益,请勿见怪,毕竟是凡人一个,旨在用我一年左右在这里积累的经验帮助一些需要帮助的人。

踩点:重在调查
早上八点起床,九点到批发部等货源,时间跟据地方热闹时,下午五点出摊,晚上十一点收。刚入行时脸要厚,到批发部记得货比三家,要跟老前辈学习。调查市场:客户需要什么?市场最畅销什么?
踩点:你要知道你所服务的群体是什么人,她们的喜好,对事物的看法,要感问敢想敢说!随时掌握第一市场行。
练摊:各具匠心
五点钟必须出发,不然别说好位置,连蹲的地方都没有,如果你生意好的地方很容易被抢占。摆摊不分等级年龄,有设计签名的,卖小装饰品的,卖穿针器,剪刀,甲刀…!有一白领卖小饰品,一问才知道,她练摊兼职自主创业。她有明确奋斗目标,她不喜欢吆喝不停,有客人时就介绍商品,这非主流的方法使得生意不算火爆,但人气够!
战术:慧眼诚心
每天必须做笔记写心德,那些好买,为什么好卖?卖不完的三天必须清仓,清不出的拿回店家换款式。摆摊必须讲卫生,如果人群有人吸烟,又不想要的可以劝走,不然99%的生意要泡汤!不信你们自己看,说话时吐一口痰,吸一口烟,你还想交易嘛!天热打赤膊,或席地而坐,膛胸**!哪个生意会好的!
销售要知道察言观色!年轻女性要推荐时尚的,保守要说推荐基本的,说有个性,有吸引力!
开价不要心太软,你想20卖的不要开25元,对方会觉得没档次,直接走肯定不回头然后跟朋友说那么便宜!!开价40元可能会卖到35元,记住他不走或不耐烦你就别松口!
雄心:始于地摊
只有有想法就要敢行动。吃这行饭这的苦,连续几天分文未得也是有的。
这行真是靠天啊!冬夜寒风刺骨,夏天闷热难受,大家或许能熬过。但连续下雨就只能坐吃山空了。
地摊生意和任何生意一样,都是有喜有忧。或许这些喜悲,与收入一样,过于微小,但是与天下人喜悲一样,在灵魂上都是平等的。
年轻人对摆地摊改变了看法,可不意味这老一辈能接受,我为此还和父母吵架了,他们叫我开车拉运货物,而我是想创业。
我认为,谁说摆地摊就没志气。成功案例也很多:方太厨具懂事长,茅理翔能成为”点火枪大王”就和他1989年广交会门口摆地摊卖点火枪分不开。英国规模最大、最赚钱的食品销售集团特斯特先生,他刚出道也在伦敦街头摆地摊…!或许有志气的年轻人梦想:白手起家,在排练过程中积累资金和经验,然后拥有自己的柜台、争店、公司…
请不必要太再乎他们的看法,要知道我们现在还年轻,还有足够的时间和青春去寻找财富的源泉,请不必整天说我没钱,我没空!那么你的人生还有何意义!
钱不要求找多少,关键是你付出努力和汗水!请各位年轻的朋友不要把过多青春年华洒在网络游戏等级和任务中!我们的青春可以换取财和做出对国家有贡献的事!为了炫丽的青年,我们共同奋斗!

广州批发市场大全
1.广州市瑞宝粮油食杂批发市场 位于海珠区南洲路10号。主要经营粮油、食杂的批发。
2.新海印食杂品批发交易市场 位于东山区东晓路83号,海印桥南面。主要经营速食品、饮品、食杂品的批发与零售。
3.天平食品综合批发市场 位于天河区天平架兴华路。主要经营粮油、食品、饮品、杂货的批发。
4.东旺食品综合批发市场 位于白云区增槎路,南临罗冲围客运站。主要经营粮油、食品、烟酒、饮料、百货的批发。
5.山海城海味干果商贸中心 位于一德路与海珠路交汇处。拥有数百家海味干果批发商进驻,甚称东南亚地区最大规模的海味干果交易市场。主要经营海产品、干果食品等的批发零售。
6.广州市一德路综合市场 位于一德路277号,东接海珠广场,西临人民南路、中建广场。主要经营海产品、干果食品、杂货等的批发。
7.南粤副食品批发市场 位于一德路283-295号。主要经营海味干货、副食品的批发与零售。
8.如意坊果品批发交易市场 位于黄沙大道169号。主要经营南北干果类的批发零售
9.海珠南海味干果专业街 位于海珠南路。主要经营海产品、干果、干菜、盐制品的批发与零售。

广州市批发城全集

[广州礼品饰品玩具文具市场名录]

国际玩具文具精品广场
主要产品:玩具文具礼品精品喜庆用品
地 址:一德西路390号
公车路线:公交车站名:一德西站公交线路车:4 8 61 82 86 243 134

艺景园精品广场
主要产品:玩具文具礼品精品
地 址:一德东路85号
公车路线:公交车站名:一德东站公交线路车:4 8 61 82 86 243 134

德宝交易市场
主要产品:玩具文具礼品精品喜庆用品
地 址:一德路190号
公车路线:公交车站名:一德西 解放南公交线路车:4 8 61 82 273 243 134 86 244 552

一德谊园精品文具批发市场
主要产品:玩具精品饰品
地 址:一德西路423号
公车路线:公交车站名:一德西站公交线路车:4 8 61 82 86 243 134

谊园文具玩具精品市场
主要产品:玩具文具礼品精品
地 址:黄沙大道30号
公车路线:公交车站名:黄沙码头站公交线路车:1 6 9 15 38 57 64 75 70 81 123 181 217 236 270

高雅月历礼品文化精品城
主要产品:月历礼品文化精品
地 址:广州市机场路63号

泰康城广场
主要产品:精品、饰品、珠宝首饰、帽子等产品
地 址:广州市越秀区泰康路111号

德进批发市场
主要产品:工艺品,精品
地 址:一德路235-243号

荔湾广场
主要产品:精品、礼品、珠宝首饰
地 址:广州市长寿西路

万菱广场
主要产品:玩具、文具、精品
地 址:广州市解放南路39号(一德路及解放南路交界)

朗能文具精品批发市场
主要产品:文具、精品、饰品等
地 址:一德西路435号

中港玩具精品批发城
主要产品:玩具文具精品业
地 址:一德西路399号

嘉乐斯精品玩具城
主要产品:玩具文具礼品精品
地 址:一德西路423号

精锐玩具精品批发中心
主要产品:玩具文具礼品精品
地 址:中山八路20号

金晋精品广场
主要产品:玩具文具礼品精品
地 址:海珠广场 乔光西路

朝阳文化用品批发市场
主要产品:文化用品
地 址:芳村花地大道中238号

华南文化用品批发市场
主要产品:文化用品、纸品业
地 址:南岸路44号

海印二沙体育精品廊
主要产品:体育用品、服装
地 址:东山区二沙岛体育训练基地旁

南澳批发市场

主要产品:文具文体用品
地 址:南岸路河柳街1号

新节拍琴行乐器总汇
主要产品:中西乐器、配件、音乐书谱
地 址:先烈东路4-29号楼

体院体育用品街市
主要产品:体育用品、服装
地 址:广州大道北体育学院外

[广州通讯产品、摄影器材批发市场]
批发市场名录:广州通讯产品、摄影器材批发市场一说到通讯产品,人们便会想到了手机。在广州,销售手机的商铺令人眼花缭乱,到底有哪几个通讯产品的专业市场呢?还有在摄影器材批发市场迅速发展的今天,又有哪几家摄影器材批发市场呢?下面让我们一起去看看广州到底有哪些通讯产品、摄影器材批发市场:陵园西通讯产品专业街位于东山区陵园西路,中华广场的对面,烈士陵园的旁边。主要经营通讯机具及其配件的批发零售。

陵园西通讯城位于东山区陵园西路。主要经营通讯机具及配件,其二楼还经营二手通讯器材的交易。

新蒂电子通讯城位于东山区中山三路53号,中华广场旁边。主要经营通讯机具及配件。

广州电子城位于荔湾区西堤二马路16号,文化公园旁。主要经营通讯机具及配件。

中百电子城位于荔湾区西堤二马路。主要经营通讯机具及配件。

德兴西堤电子城位于西堤德兴路,文化公园旁。主要经营通讯机具及配件。

广州市日用工业品交易市场位于荔湾区西堤二马路。主要经营通讯器材、日用电器、摄影器材。

南太日用工业品批发市场位于荔湾区西堤二马路。主要经营通讯机具及配件、日用电器。

文园电器通讯器材交易市场位于荔湾区人民南路45号、文化公园右侧。主要经营通讯机具及配件、日用电器等。

广东省通讯产品交易中心位于越秀区东风中路,市总工会附近。主要经营通讯机具及配件。

广州鸿运摄影器材城位于东山区大沙头二马路东船上街。主要经营摄影器材及其配套产品。

盛贤鸿运摄影器材城位于东山区大沙头二马路东船上街。主要经营摄影器及二手摄影器材。

[广州图书、音像制品批发市场]
批发市场名录:广州图书、音像制品批发市场随着中国图书业,音像业规模的迅速成长,各类图书、音像的市场总流量也得到稳步的增长。专业书店、音像店,通过专业的流通渠道应运而生。在广州的图书音像市场上,有以下多个批发市场:广州市新华书店位于越秀区北京路276号。主要经营综合性的书籍的批发零售。

广州市科技书店位于越秀区北京路336号。主要经营科技类的综合书籍。

广州市古籍书店位于越秀区北京路338号。主要经营各类书法读物以及其它书籍。

广东省外文书店位于越秀区北京路326号。主要经营各类书籍、外语教材。

广州市儿童书店位于越秀区北京路314号。主要经营儿童类书籍、读物。

广州购书中心位于天河区天河路123号。体育中心的右侧。主要经营各类图书、教材及各类音像制品。

广州市考试书店位于东山区环市东路465号,广工北门对面。主营自学教材,考试教材类书籍。

金羊书店位于东山区东风东路,羊城晚报社前。主要经营各类图书、书刊、读物。

广东音像城位于白云区机场路118~122号,北临广州白云机常主要经营音像制品批发零售。

广东省图书批发中心位于东山区大沙头东湖路。主要经营各类图书、音像制品的批发零售。

新东园图书批发市场位于东山区沿江东路414,在大沙头附近。主要经营各类图书、报纸杂志的批发。

广州市图书批发市场位于海珠区海印桥南建基路。主要经营各类图书批发

[广州主要眼镜钟表批发市场]
批发市场名录:广州主要眼镜钟表批发市场九龙钟表行主要产品:各种钟表及配件地址:站西群英路3号广州信江眼镜贸易中心主要产品:现代化的眼镜批发地址:广州市人民中路250号广州信江眼镜贸易中心是广州信江贸易有限公司投资开发的大型眼镜批发市场,在2003年5月9日正式开张营业,她的开张营业使广州眼镜批发市场面积遽增1倍,真正形成了全国三大眼镜批发市场北京、丹阳、广州三足鼎立的形势。该中心位于广州繁华的人民中路,是属于传统眼镜贸易的黄金地带,同广州眼镜城抵足而立,共同形成了一条代表广州眼镜批发行业形象的靓丽的风景线。

广东(国际)眼镜贸易中心
主要产品:国内外品牌眼镜
地址:广州市光复中路313号

南方钟表交易中心
主要产品:各种钟表及配件
地址:环市西路145号后座

站西钟表城
主要产品:各种钟表及配件
地址:站西群英路5号

华南钟表批发市场
主要产品:各种钟表及配件
地址:站西路57号

东方表城
主要产品:各种钟表及配件
地址:站西群英路5号

南方眼镜专业市场
主要产品:眼镜类及配件光学仪
地址:人民中路317号

广州眼镜城
主要产品:眼镜类及配件光学仪
地址:人民中路260号

[广州文物、古玩、玉器批发市场]
批发市场名录:广州文物、古玩、玉器市场在人们生活富余的同时,越来越多的人喜好收藏文物、古玩、以及玉器。广州素为岭南文化之渊薮,历史源远流长、城市文化气息极为浓厚。荔湾区西关一带做为广州传统商业文化的渊源之地,自是文物、古玩、玉器市场的驻地。

西关古玩市场长久以来已形成了一定的规模,自是品种繁多、琳琅满目。其中座落于龙津西路泮溪酒家旁的广州西关古玩城,由于文化渊源和常驻有一些颇有实力的、活跃于国内及港澳古玩界、拍卖界的古玩商,因而兴旺不已。在这里也常能看到一些珍品级的好东西出现。

此外,还有其它几个较为出名的古玩市场:源胜陶瓷玉器工艺街位于荔湾区带河路源胜街。主要经营陶瓷玉器、古玩钱币,古旧家俬、奇珍异石等。

新源胜玉器街位于荔湾区长寿西新源胜街。主要经营玉器、工艺品、水晶、首饰包装工具等。

华林玉器专业街、华林玉器大楼、华玉玉器商场位于华林新街,华林寺附近。主要经营玉器、工艺品、首饰、水晶等。

华瀚古玩玉器商场位于荔湾区带河路185号。主要经营古旧陶瓷、文房四宝、字画杂项等。

广州文物总店位于东山区文德北路172号。主要经营古旧陶瓷、文房四宝、古旧家俬、奇珍异石等。

清平古玩钱币市场位于荔湾区清平路。主要经营古玩杂项、古旧钱币、奇珍异石等。

[广州化妆品批发市场]
广州市目前是全国美容美发化妆品交易的重要基地,每年的美容美发、化妆品交易额占到全国的四成以上,广州已成为中国的美丽中枢。而目前整体规模高居亚太地区榜首的广州美博城可以说是中国美丽领地最重要的亮点了,在广州美博城的带领下,广州美容美发、化妆用品批发市场也空前地兴旺起来。广州到底还有哪些化妆品、美容美发、洗涤用品批发市场呢?下面将为您逐一数来。
广州美博城位于白云区广园西路121号,火车站与白云机场的衔接处,交通畅顺,辐射力强。是一家规模宏大、造型优美、软硬设施一流的化妆品、美容美发、洗涤用品市常目前已有国内外400多家知名化妆品品牌厂进驻,各类产品琳琅满目,魅力四射。
兴发广场位于白云区机场路138号,广州中医药大学附近。主要经营化妆品、洗涤用品、美容美发用品的批发零售。
怡发广场位于白云区机场路96~98号,在广州中医药大学附近。主要经营化妆品、洗涤用品、美容美发器材的批发零售。
中人化妆品城位于机场南路兴发广场二期二楼。主要经营化妆品、洗涤用品、美容美发器材的零售与批发。
洗涤、化妆品、美容美发用品专业街位于荔湾区长寿东路、上下九步行街的附近。主要经营洗涤用品、化妆品、美容美发用品器材的批发与零售。

1.广州美博城
乘坐189、274、83、241、198、101、175、179、807、268、522、46、538、291路公交车,在瑶台站下车即可。

2.洗涤化妆品美容美发用品专业街
乘坐2、3、6、61、82、128、134、181、186、202、204、239、251、288、521、538、823路公交车,在长寿东站、上九东站下车即可。

3.兴发广尝怡发广场
乘坐24、38、46、87、101、103、105、108、185、186、189、251、254、257、284、510、511、509、523、539、540、805路公交车,在机场路站、中医学院站下车即可。

4.中人化妆品城
乘坐58、87、101、103、105、108、185、268、274、278、280、291、509、510、511、519、528、538、555、556、803、807路公交车,在机场路站、机场生活区站下车即可。

[广州茶叶、茶具批发市场]
批发市场名录:广州茶叶、茶具批发市场目前,广州的茶叶茶具市场汇集了福建、潮阳、浙江、广州、香港、台湾等地区的数百家茶商,成行成市。形成了全国最大的茶叶批发、零售市场营销网络。
以下介绍几家广州比较有规模的茶叶茶具批发市常南方茶叶总汇位于芳村洞企石路8~10号。是全国最大的茶叶批发零售市场之一,主要经营茶叶、茶具、茶工艺品的批发零售。
芳村洞企石路茶叶专业街位于芳村洞企石路。主要经营茶叶、茶具、茶工艺品的批发零售。
广东海印茶叶市场位于海珠区东晓路35号,即海印桥南路段。主要经营茶叶、茶具、茶工艺品的批发与零售。
广东耀生糖烟酒茶叶交易市场位于广清公路石丰路口。主要经营粮烟酒、茶叶的批发与零售。

1.芳村洞企石路茶叶专业街、南方茶叶总汇

乘坐19、52、55、65、75、81、193、206、207、281、823路公交车,在山村站下车即可。

2.广东耀山糖烟酒茶叶交易市场
乘坐17、228、280、521路公交车,在石丰路口站下车即可。

3.广东海印茶叶市场
乘坐35、44、45、192、184、188、208、543、546、551、864路公交车,在海印桥南站下车即可

[广州装饰材料、灯饰批发市场]
在人民生活水平的不断提高的今天人们越来越追求高品味的家居生活。家居的布局、布置,以及装饰材料的选用,都是高品味家居的体现,尤其是装饰材料选购更是其中的重要环节。
在广州,大型装饰材料的市场有十几家。主要集中于南岸路,大南路和泰康路等。
南岸装饰材料专业街主要经营装饰材料灯饰钢门类。位于南岸路,它北临广州火车站,省汽车站,南接青年公园,荔湾湖。此外,南岸路30号的广州装饰材料市场;33号的南岸装饰材料市场;44号的星之光装饰材料市场;20号的广东装饰材料市场;都是主要经营装饰材料、陶瓷五金、灯饰的专业批发市常在越秀区大南路,有大南路装饰材料专业街,以及大南路117号的华淦装饰材料商场,都主要经营装饰材料五金灯饰广告材料。而在大南路2号的太古灯饰城则主要经营灯饰批发,59号的广州纺织装饰工艺品商场,主要经营的是窗帘布艺的批发。大南路东接北京路,北临起义路,南面靠近海珠广常在靠近海珠广场的泰康路,有泰康装饰材料专业街,主要经营装饰材料、洁具、防盗用品钢门。还有主营装饰材料五金的泰康装饰材料市常另外,还有惠福东路的惠福东装饰材料专业街,主要经营装饰材料灯饰、防盗用品以及广告材料。
沙河附近,有沙太路河水路口的沙河装饰材料市场,主要经营装饰材料五金;沙太路白云批发市场对面的天建广场,主要经营夹板装饰材料;以及沙河路的沙东装饰材料市场,主要经营装饰材料、五金广告材料。还有旧广丛公路108号的沙河天平架装饰材料城,也是经营装饰材料五金业的。
东圃附近,有车陂路的广州车陂装饰材料城,主要经营装饰材料五金业。以及主要经营装饰石材加工销售的车陂石材城。
在黄石东路,有主要经营装饰材料陶瓷、五金的安华装饰材料城。还有主要经营灯饰的安华灯饰城。
在工业大道南581号,有一间金马装饰材料城,也是主要经营装饰材料、陶瓷的批发。
此外,还有位于黄埔大道员村山顶的喜龙建材装饰材料商业广场,及黄埔大道西的南兴装饰材料城,亿宝装饰材料市场,都主要经营建筑装饰材料五金业的比较大型的装饰材料批发市场。

服装
高第街服装工业街
主要产品:服装、鞋业、皮具
地 址:广州北京路口高第街
公车路线:公交车站名:北京南路站公交线路车:1 14 64 125 182 191 215 219 222 263 543 864 7

万佳服装批发市场
主要产品:中低档成人儿童服装
地 址:广州先烈中路143号
公车路线:公交车站名:沙河大街站

外贸服装批发商场
主要产品:中高档服装批发
地 址:站南路
公车路线:公交车站名:省站 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205
207 210 211 260 261 256 518 552 556 543 823

海珠婚纱街
主要产品:婚庆用品、服饰
地 址:南华东路549号

广东耀生服装批发市场
主要产品:成衣、服装辅料
地 址:广州广清路耀生市场

广州锦都男装商城
主要产品:男装
地 址:广州站前路197号

江南婚纱街
主要产品:婚纱
地 址:广州江南大道北
公车路线:公交车站名:江南大道北站公交线路车:10 13 14 16 25 26 82 86 87 180 183 186 190 203 220 222 244 248 263 299 552 544

故衣路服装批发街
主要产品:成人儿童服装批发街
地 址:故衣路
公车路线:公交车站名:人民南站 和平东站公交线路车:31 38 61 102 106 103 128 134 186 202 217 239 251 288 521 541 556 823

十三行服装批发街
主要产品:童装服装批发
地 址:十三行路
公车路线:公交车站名:人民南路站公交线路车:31 38 61 102 106 103 128 134 186 202 217 239 251 288 521 541 556 823

濂泉服装批发街
主要产品:中低档成衣批发
地 址:沙河濂泉路
公车路线:公交车站名:沙河大街站公交线路车:11 27 65 84 85 201 209 218 219 236 271 290 534 862

天河长运商业广场
主要产品:中低档成衣童服批发
地 址:沙河濂泉街15号
公车路线:公交车站名:沙河大街头站公交线路车:11 27 65 84 85 201 209 218 219 236 271 290 534 862

红棉步步高时装广场
主要产品:中高档服装批发
地 址:站前路
公车路线:公交车站名:站前路 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

天马服装批发市场
主要产品:中高档服装批发
地 址:站南路
公车路线:公交车站名:站南路 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

广州服装汇展中心
主要产品:中高档服装批发
地 址:站前路
公车路线:公交车站名:站前路 火车站公交线路车:5 29 34 52 207 239 275 290 288 527

金马皮革时装中心
主要产品:中高档服装皮具批发
地 址:站前路
公车路线:公交车站名:站前路 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

新大地服装批发城
主要产品:童装服装批发
地 址:站前路108-122号
公车路线:公交车站名:站前路 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

新星服装商厦
主要产品:中高档服装批发
地 址:站前路
公车路线:公交车站名:站前路 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

站西服装批发城
主要产品:中低档服装批发
地 址:站西路
公车路线:公交车站名:省站 火车站公交线路车: 5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

金象针纺服装批发中心
主要产品:针纺服装批发
地 址:站西路
公车路线:公交车站名:省站 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

金宝时装批发城
主要产品:中高档服装批发
地 址:站西路
公车路线:公交车站名:省站 火车站公交线路车:5 7 15 29 30 31 33 34 52 180 201 202 203 205 207 210 211 260 261 256 518 552 556 543 823

新贵都商业城
主要产品:中高档服装批发
地 址:人民北路933号
公车路线:公交车站名:交易会火车站公交线路车:5 7 38 83 181 202 211 260 251 273 288 518 543 552
广州整个服装批发市场简介

随着人民生活进入小康水平,城乡居民对服装需求进一步的增长,消费结构发生了较大的变化。广州作为国内最大的成衣市场中转站,拥有国内规模较大的服装批发市场。广州的服装批发市场作为服装厂家和经销商专门经营服装的场地,经营着各种名牌服装,以及高、中、低档服装,极大地满足各个消费层次的衣着需求。

白马服装市场 是广州地区规模最大的服装市场。素有“白马大厦、服装天下”的美誉,市场辐射全国各地乃至世界五大洲。主要经营中、高档服装的现货批发、零售,也是服装品牌连锁的加盟中心。位于广州市站南路16号,东临广州火车站与流花车站,北接省汽车客运站。

流花服装批发市场、新星服装商厦、天马服装批发市场、外贸服装批发商场,都位于站南路附近。主要经营中、高档服装批发零售。

站西服装批发城、金宝时装批发城 都位于站西路,在省汽车客运站的北面,南临广州火车站,主要经营中、低档服装的批发零售。此外同街的金象针纺服装批发中心,则主要经营针纺服装的批发零售。

新中英时装城 位于起义路168号,与西湖路口交界处,靠近人民公园方向。而在西湖路近北京路方向,有一家西湖时装广场,主要经营中、高档时装的批发零售。

亚细亚高级时装皮具商场 位于起义路4~10号,靠近海珠广场方向。主要经营中、高档时装以及皮具的批发零售。

康乐时装广场 位于人民北路921号,以及位于人民北路933号的新贵都商业城。主要经营中、高档服装的批发零售。

金马皮革时装中心、红绵步步高时装广场、新大地服装批发城 都位于站前路,东临广州火车站。主要经营中、高档服装的批发,其中新大地服装批发城还主要经营童装的批发零售。

十三行服装批发市场 位于越秀区十三行路,文化公园附近。主要经营服装、童装的批发零售。

高第街服装工业品街 位于北京路高第街。主要经营服装鞋品、皮带的批发零售。

江南婚纱街 位于江南大道北,海珠桥南面。主要经营婚纱、晚礼服的批发零售。

故衣路服装批发街 位于故衣路,文化公园附近。主要经营成人儿童时装的批发。

万佳服装批发市场 位于先烈东路143号,沙河附近。主要经营中、低档成人儿童服装的批发。

濂泉服装批发街 位于沙河濂泉路。这条街服装批发市场比较多。

除此之外,还有天河长运商业广场、沙河第二、第三批发市场,以及沙东成衣第一、第二批发市场。它们都主要经营中低档的成衣、童装的批发与零售

美国最佳虚拟主机提供商 GoDaddy居第六位

据IDC评述网调查得知,如今许多国内站长已慢慢放弃租用国内虚拟主机而把网站悄然迁移到美国的虚拟主机去了。选择美国主机的原因无非是价格便宜、 无限网页空间、网站速度快及不用备案。今天,IDC评述网根据数据统计及行业用户反映,发布美国最佳虚拟主机提供商TOP12,信息如下:

图1 美国最佳虚拟主机提供商排行榜

HostGator成立于2002年,是世界领先的共享虚拟主机,主机经销商和专用服务器供应商。其价格不仅便宜,速度和稳定性都有所保障,在全球 拥有数十万的客户。位居第二的是欧洲最大的互联网服务商之一的1and1,美国的1and1是其子公司,其在世界上拥有4个数据中心,超过2.8万台高端 服务器,在全球拥有超过400万的用户。而HostMonster排名第三,其优势是支持无限域名,访问速度快稳定性好。

下面,我们来看看美国最佳虚拟主机其服务器在运行、性能、及网络环境中的测试指数:

图2 虚拟主机服务器正常运行时间记录表

图3 服务器性能记录表

图4 虚拟主机网络环境测试记录表

从上述数据显示,HostGator及1and1在三项测试中,其表现较为稳定,不管是从正常运行时间、服务器性能或网络环境测试数据中,都能看出 其比其他供应商所占据的优势。而浮动较大的是Justhost。Justhost其正常运行时间能达到99.97%,然在性能上和网络环境中却还是比其他 供应商稍微差了一些。Godaddy表现得中规中矩。

结束语:选择美国虚拟主机,究其原因不外乎是美国虚拟主机市场成熟规范,网络和硬件设施保障,拥有多年的运作经验,价格相对国内空间便宜,可能支持 庞大的空间容量和流量,免费附带支持多类流行软件(blog, 论坛,社区),商务支持等。但并不是所以的网站都适合选择美国的虚拟主机,如果企业网站的主要访客或客户来自国外,如外贸公司网站,则最好选择美国的虚拟 主机,然如果企业网站的访问者主要来自国内,如论坛、电子商务类型则最好还是选择国内虚拟主机。所以,我们仍需仁者见仁智者见智。

经常应用的Shell特性技巧

在我们学习中经常遇到困难,问题。今天我们讲的就是操作系统中的问题。电脑中必不可少的就是操作系统。这里介绍Linux的知识,让你学好应用 Linux系统。今天一讲开启和关闭Shell特性技巧,希望你记住开启和关闭Shell特性技巧。可以通过打开或者关闭Bourne Again Shell的功能的方式来控制它的行为。

不同的功能使用不同的方法开启和关闭。内置命令set控制着一组功能,而内置命令shopt控制另外一组命令。还可以调用bash在命令行中控制很多功能。

1. set ±o:开启和关闭shell特性

通过使用-o或者+o选项,内置命令set(tcsh中有一个内置命令set,但是它的工作方式不同)可开启、关闭并列出某些bash特性。举例来说,下面的命令将开启noclobber特性:
◆ set -o noclobber

使用下面的命令可以关闭这项特性(默认):
◆ set +o noclobber

2. shopt:开启和关闭shell特性

内置命令shopt(shell option)开启、关闭和列出那些控制着shell行为的某些bash特性。举例来说,下面的命令将使bash在扩展模糊文件引用时,包含那些以句号(.)开头的文件名,-s表示设置:
◆ shopt -s dotglob

通过下面的命令可将这项特性关闭(默认),-u表示取消设置:
◆ shopt -u dotglob

如果只将特性的名称作为shopt唯一的参数,shell显示该特性是如何设置的:
◆ shopt dotglob
dotglob off

命令shopt不带任何选项或者参数时,将列出由shopt控制的那些特性及其状态。命令shopt -s不带参数时,将列出那些由shopt控制并设置为开启的特性。命令shopt –u将列出那些被取消或者关闭的bash特性。

这样你就轻松学会开启和关闭Shell特性技巧。

译文:Hacking Bash History

————–[目录]————-
一:序言
二:加固bash_history
三:攻破logging机制
四:使用syslog接口hacking bash
五:总结
六:参考资料

[一:序言]
=========
Bash堪称*nix世界使用最广泛的shell,其特性之一是历史命令(history)机制。此机制主要用于为用户提供方便--少敲几下键盘,提高工作效率。
然而,被广泛讨论的是bash_history可以用作logging机制以此来监控用户的活动。此文将对上述问题进行讨论并解释为啥logging机制在少数人
(注:此注翻译有点变味,原文someone who thinks out of the box)面前会失效。我们将见到各种用于保护history文件的防御措施是如何不费
吹灰之力或稍微费点力就被突破的。随着讨论的跟进,突破的限制也将变得更严,但这并不代表突破起来就更困难,与之相反大部分方法都是可以
不费脑子的。最后,我们将修改bash的源码来实现”无敌”logging机制,也将看到”无敌”并不是真正的无敌。

[二:加固bash_history]
=====================
假设你所管理的系统提供shell登录功能,你的用户当中有个别及其讨人厌的家伙,于是你想监控他的活动,因为你非常怀疑他半夜三更使用你所
负责保护的CPU和系统资源作恶意行为(或是其他的,例如下毛片等)。我们暂且叫他二哥(此处原文为Bob,Bob一名在国外经常用来指代坏蛋)。
因为所有用户都是使用bash作为默认shell,你开始着手修改bash的配置文件:

//第1步//
–使bash历史记录文件和相关文件无法被删除或修改。

二哥所做的第一件事应该是建立history到/dev/null的链接。

bob$ rm ~/.bash_history
bob$ ln -s /dev/null  ~/.bash_history

这可以通过修改历史记录文件为只能被追加来进行阻止,执行以下命令来改变其属性:

# chattr +a /home/bob/.bash_history

这是使用文件系统附加属性来指定文件只能被追加,大多数文件系统支持此功能(例如ext2/3,XFS,JFS)。在FreeBSD上可以执行:

# sappnd /home/bob/.bash_history

你还应修改shell启动相关的其他文件的这个属性:

# chattr +a /home/bob/.bash_profile
# chattr +a /home/bob/.bash_login
# chattr +a /home/bob/.profile
# chattr +a /home/bob/.bash_logout
# chattr +a /home/bob/.bashrc

前三个文件在交互式bash shell(或非交互式sehll使用–login选项)调用时被读取(在读完全局配置文件/etc/profile后)。.bashrc文件
只在当non-login交互式shell调用时被读取。这意味着当二哥已登进系统后,用以下方法自己调用一个新shell时:

bob$ bash

此时只有.bashrc文件被读取,而上面所列的前三个配置文件不会再次被读取了。
做了以上属性的修改后再来做更进一步的”加固”,一个所谓的保护措施。

//第2步//
–配置 .bash*配置文件

所有的配置将针对.bashrc文件,因为其他三个配置文件本身会调用.bashrc,也就是说.bashrc无论如何都会被读取 (不管用户是否
刚登录或是登录后手工调用bash shell)。

所以,所有修改都针对.bashrc的好处是可以防止二哥登录后手工调用新的bash shell来跳过仅在.bash_profile,.bash_login,.profile
三个配置文件中生效的配置选项,另一好处是这三个文件本身都会调用.bashrc,所以在首次登录系统时.bashrc当中的配置也会生效。

# cat >> /home/bob/.bashrc << EOF
> shopt -s histappend
> readonly PROMPT_COMMAND=”history -a”
> EOF

此处histappend选项的作用是让bash附加上最后一行$HISTSIZE给$HISTFILE文件(一般是~/.bash_history文件),不管交互式shell
何时退出。默认的,bash每次均会覆盖$HISTFILE以保证只有一个session被保存以此来节约空间。

环境变量PROMPT_COMMAND会保存一条将被优先执行的命令,意思是说”history -a”命令将在用户执行命令前被优先执行,这将保证
不管当前命令前一条是执行的什么,它将立即被追加进$HISTFILE,而不用等待整个会话结束再将历史命令从内存记录至硬盘。
此处的readonly作用是使变量不可修改以防止被二哥覆盖掉或是直接屏蔽掉。

最后要完成的步骤是使所有与bash_history相关的环境变量都变为readonly:

readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE

//第3步//
–禁掉系统中所有其他shell,一般包括csh,tcsh,ksh。

# chmod 750 csh
# chmod 750 tcsh
# chmod 750 ksh

这将阻止二哥把bash shell切换成其他shell。
现在,机敏点的管理员会抱怨上面的都是shit!
还有一个shell逃出了我们的掌控!在你看完以上叙述跳入浮想联翩之前,让我们来搞清一些事情。

很久很久以前… (你懂的),原本只有一个Bourne shell 或者叫sh,现如今,/bin/sh实际上是/bin/bash的一个链接。Bash在
被调用时检查它是以哪个名字被调用的并以此来判断是不是调用sh,它试图模仿历史版本的sh的行为并和POSIX标准保持一致。
如果以交互式login shell或非交互式shell带上–login选项启动,它才读取/etc/profile和~/.profile来初始化配置。如果以
交互式shell被调用,则试图解释$ENV变量,当$ENV非空则使用它的值当作默认配置并执行。我们将在本文的下一节讨论如何
利用这点来秒杀bash的所有设置。

[三:攻破logging机制]
===================

现在是时候站在二哥的角度来看下所有问题了。我们将验证上面的防御是如何一步步被攻破的。在实践中的可能性是无穷进的。
以下所提及的突破bash_history logging机制的技巧只是九牛一毛。

//方法1//
–使用Bourne shell –/bin/sh逃脱术

$ /bin/sh

调用sh会导致bash模仿如前所述的历史版本sh而不会读取与bash直接相关的任何配置文件。因此,二哥现在能够避开$HISTFILE变量了,
因为它已不再是readonly。

$ unset HISTFILE

这会使得logging机制在当前会话中直接萎掉,因为此变量控制的历史命令记录文件将会是空的。
注:也可以通过调用/bin/rbash(如果系统里存在的话)来实现相同效果,它会模仿受限版本的bash,和sh一样也是一个bash的链接,
但是使用起来确实有些让人蛋疼。

//方法2//
–让bash不加载.bashrc配置文件

可以通过以下方法实现:

$ /bin/bash –norc

这样即可禁止bash读取.bashrc从而被设置成readonly的变量变成了writeable,然后像下面这样做:

$ HISTFILE=

会清空$HISTFILE变量—>无历史记录。

[四:Hacking bash-使用syslog日志接口]
==================================

从以上我们很清楚地得出结论--传统的加固bash_history的方法实际上都是扯淡。然而我们却可以更向前一步的hack bash本身
来减少logging机制的脆弱性并提高其隐秘性。需要注意的是即便如此也是可以被攻破的。由于bash与内核的差距导致它并不是足够
的健壮来作为一个logging设备,即便是hack了它的核心。

现在的想法是修改bash源码使用户键入的所有指令全部发送给syslog,由syslog将日志记录到/var/log目录下。我们将提供一个快速
而且很黄很暴力的方法来实现这一目标--这里,哪个用户键入的哪条指令将没有差别的被对待,而这也是可以被实现的。

我们的接口的最佳放置点是parse.y文件,它由bash的yacc语法组成。当一条指令在shell中被下达时bash解释器将迅速被调用。因此,
将syslog钩子放置在解释器刚好完成它的工作前一点点,貌似是个好办法。需要修改的仅仅是增加两行代码:包含进syslog.h和设置
syslog调用。我们使用了bash-3.2的源码:

————————————————————
[ithilgore@fitz]$diff -E -b -c ~/bash-3.2/parse.y ~/hacked_bash/parse.y

*** ../../bash-3.2/bash-3.2/parse.y     Tue Sep 19 13:37:21 2006
— parse.y     Sat Jul 12 18:32:26 2008
***************
*** 19,24 ****
— 19,25 —-
Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */

%{
+ #include <syslog.h>
#include “config.h”

#include “bashtypes.h”
***************
*** 1979,1984 ****
— 1980,1986 —-
shell_input_line_len = i;             /* == strlen (shell_input_line) */

set_line_mbstate ();
+         syslog(LOG_LOCAL0 | LOG_CRIT, “%s”, shell_input_line);

#if defined (HISTORY)
if (remember_on_history && shell_input_line && shell_input_line[0])

—————————————————————————

上面的调用产生了一条日志消息,此消息将被syslog根据LOG_CRIT级别送到local0的设备上。要让这个东东生效则还必须要在
/etc/syslog.conf配置文件中加入一条:

local0.crit                /var/log/hist.log

至此用户下达的每条指令都将躺在/var/log/hist.log里,这个日志文件一般情况下日有root用户有读权限。

要注意的是上面所提到的hack并不区分是否为不同用户的输入。要实现的话还有更多的事情需要做的。由于所有的命令都被记录下来,
那么由shell脚本执行或启动bash时的配置文件执行所产生的垃圾信息也是会被记录下来的。

现在唯一剩下的问题是”上面的hack要怎样才能被攻破?”其实这相当滴简单:
—->编译或上传一个你自己的干净的bash或其他shell即可搞定。
由于上面的hack是在特定版本的基础上的所以你编译或上传的干净bash可能在他的系统上会运行失败。

[五:总结]
=========

Bash 只是一个shell,并不是一个logging设备而bash_history只是用来为用户提供点方便少敲几下键盘而已。毫不装逼的说一句
所有使用它来当监控设备的做法都是白搭。如果你是个较真的系统管理员且确实需要监控用户的活动,那就写个内核模块记录所有
用户的键盘记录,并根据uid或其他参数进行过滤。这个方法将会非常管用并且很难被攻破(只是很难不是没那可能)。
现在已经有Linux包括FreeBSD下的审计框架可供选择。在FreeBSD平台,由Robert Watson和TrustedBSD项目开发的审计框架是选择之一。
更多信息参见:
http://www.freebsd.org/doc/en_US … handbook/audit.html
在linux平台,由来自红帽的Steve Grubb开发的Linux Auditing System也是一个选择:http://people.redhat.com/sgrubb/audit/

[六:参考资料]
============

a. bash & syslog man pages
b. bash-3.2 source code -http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz
c. thanks go to
- Michael Iatrou for pointing out a correction
- gorlist for participating in a mini-wargame, set up to test the subject

拿到一个linux下的shell之后,有用的命令整理

cat ./../mainfile.php - Config file.

ls -la - Lists directory’s.

ifconfig {eth0 etc} - Ipconfig equiv.

ps aux - Show running proccess’s.

gcc in_file -o out_file - Compile c file.

cat /etc/passwd - List’s accounts.

sudo - Superuser Do run a command as root provided you have perms
in /etc/sudoers.

id - Tells you what user your logged in as.

which wget curl w3m lynx - Check’s to see what downloaders are
present.

uname -r - Shows all release info (or) cat /etc/release.

uname -a - Shows all kernal info (or) cat /etc/issue

last -30 - Last logged 30 ip’s can change to desired number.

useradd - Create new user account.

usermod - Modify user account.

w - See who is currently logged on.

locate password.txt - Locates password.txt in current dur can use *.

rm -rf / - Please be carefull with this command, i cannot stress this
enough.

arp -a - Lists other machines are on the same subnet.

lsattr -va - ls file attributes on linux second extended file system

find / -type f -perm -04000 -ls - Finds suid files.

find . -type f -perm -04000 -ls - Finds suid files in current dir.

find / -type f -perm -02000 -ls - Finds all sgid files.

find / -perm -2 -ls - Finds all writable files and folders.

find . -perm -2 -ls - Finds all writable files and folders in current dir.

find / -type f -name .bash_history - Finds bash history.

netstat -an | grep -i listen - shows open ports.

cut -d: -f1,2,3 /etc/passwd | grep :: - From memory creates a user
with no pass.

find /etc/ -type f -perm -o+w 2> /dev/null - Write in /etc/passwd?.

cat /proc/version /proc/cpuinfo - Cpu info.

locate gcc- Finds gcc if installed.

set - Display system variables.

echo $path- Echo current path.

lsmod- Dumps kernal modules.

mount/df- Check mounted file system.

rpm -qa- Check patch level for RedHat 7.0.

dmesg- Check hardware ino.

cat /etc/syslog.conf - Log file.

uptime - Uptime check.

cat /proc/meminfo - Memory check.

find / -type f -perm -4 -print 2> /dev/null- Find readble files.

find / -type f -perm -2 -print 2> /dev/null - Find writable files.

chmod ### $folder - Chmod folder.

ls -l -b - Verbosly list directory’s

老外写的htran, dsrelay

This is essentially an N-way relay for sockets. It can listen on a port and connect outbound to any number of others. This type of relay can be useful for penetration testing; the attacker exploits a server to get a shell, drops this on, and can relay additional attacks through it.

Usage: dsrelay [options] [<host:port> [<host:port>[<host:port>[...]]]]

Options
-l <port>      Listen for incoming connections
-w             Wait for an incoming connection before making outbound
               connections (must be in listen mode). Use multiple 'w's to
               wait for multiple incoming connections (-ww, -www, -www, ...)
-W <N>         As -w, but wait for N incoming connections
-v             Be verbose (print notifications for connects/disconnects)
-vv            Be very verbose (print notifications for packets)
-d             Show raw data
-dd            Show raw data with some context
-s             Sanitize the raw data (replace non-printable characters,
               including newlines)
-t <N>         Terminate when there are <=N active connections (default 0)
               Note: only happens after waiting (-w) threshold is reached
-T             Terminates when any connection closes
-e             Terminate on any winsock error (eg, failed connection)
-r             Restarts each outbound connection when any connection ends

Either -l or multiple outgoing connections must be given.

Example 1, to create a relay between localhost and Google, watching data:
c:\> dsrelay -vv -dd -eT -w -l 80 www.google.ca:80

Example 2, to create an outbound-only tunnel to Google, watching data:
c:\> dsrelay -eT localhost:4444 www.google.ca:80

Example 3, to create a tunnel to a locally-running VNC server, with a monitor
           (listens on 5901 (vnc:1), relays data to 5900 (vnc:0), and copies it
           to 4444 (presumably a netcat listener)
c:\> dsrelay -w -e -T -l 5901 localhost:5900 localhost:4444

Example 4, to forward a Hydra attack against a FTP server
           (here, we use a second connection (probably a netcat client) to
           the connection. Every time Hydra reconnects, the connection resets,
           but when the other disconnects, it falls below the threshold of 1
           connection and the session terminates.
           Note: Hydra must be set to one connection (-t1) for this to work.

一个清bash操作日志的误区

可能在渗透测试过程中,需要清除当前bash操作的history记录。按照网上流行的说法,history -c就清除掉了。但当你下次登录的时候就会发现,所有的.bash_history都被清空!这样稍微有点常识的管理员立马就能发现问题了。

正确的做法应该是在退出前执行
export HISTFILE=/dev/null
export HISTSIZE=0

就行了,切记!呵呵

php 无限级数据JSON格式及JS解析

Flash需要JSON格式的数据,于是,就有了如下代码:(PHP实现,C#类似,JSON库自己去下吧~~)

代码如下:
//–查询用户下线信息,返回JSON,用于flash
if(!empty($_GET['action'])&&!empty($_GET['invite'])){
//固定参数请求才会返回信息
if($_GET['action']==’getinfo’&&$_GET['invite']==1){
//数据实体,一个实体类
class UcInvite{
//—显示用的数据信息
public $fuid; //用户id
public $funame; //用户名
public $furl; //用户空间地址
//—显示用的数据信息
public $fchilds; //子类集合
}
$invitecount = 0; //总数量,用于记录全部下线数量
//递归实现方法
function GetShowTreeInvite($uid){
global $_SGLOBAL,$invitecount;
//组织sql语句并查询,表中fuid是下线的id,uid是父id,fusername是用户名字
$inv_sql = “select fuid,fusername from “.tname(”invite”).” where uid = “.$uid;
$inv_query = $_SGLOBAL['db']->query($inv_sql);
//下表及返回数组
$index = 0;
$inviteTree = Array();
$invitezcount = 0; //每个子类下的数量
//循环添加信息到数组
while($v = $_SGLOBAL['db']->fetch_array($inv_query)){
$ui = new UcInvite();
$ui->fuid = $v['fuid'];
$ui->funame = $v['fusername'];
$ui->furl = “/home/space.php?uid=”.$v['fuid'];
//调用自己,递归查询子类信息
$ui->fchilds=GetShowTreeInvite($v['fuid']);
//插入返回的数组中
$inviteTree[$index]=$ui;
$index++;
$invitecount++;
$invitezcount++;
}
//记录当前下线的下线数量
$inviteTree['invitezcount'] = $invitezcount;
//返回数组信息
return $inviteTree;
}
$fuid = empty($_GET['fuid'])?$space[uid]:$_GET['fuid'];
//根据当前登录用户ID查询信息,并返回一个集合
$inviteTree = GetShowTreeInvite($fuid);
//记录总下线数
$inviteTree['invitecount'] = $invitecount;
//引入json库,这里用的是Services_JSON
//因为并不确定服务器都是PHP5.2以上版本,所以没有用自带的JSON函数
require_once(’../plugins/JSON/JSON.php’);
//json输出
$json = new Services_JSON();
echo $json->encode($inviteTree);
exit;
}else{
echo ‘请求参数错误!’;
exit;
}
}
//–查询用户下线信息,返回JSON,用于flash

以上代码返回一个JSON字符串,如:
{’0′: {’fuid’:'950′,’funame’:'郭梓原’,'furl’:'/home/space.php?uid=950′,’fchilds’: {’invitezcount’:0}},’invitezcount’:1,’invitecount’:1}
这里只查询了一个
接下来用JS进行以下解析:

代码如下:
<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js”></script>
<script type=”text/javascript”>
//fuid 用户ID
//funame 用户名称
//furl 用户主页地址
//invitezcount 每个用户的子类数量
//invitecount 该用户的所有下级数量
var str = “”;
function GetShow(obj,qi,index){
for (var one in obj)
{
for(var key in obj[one])
{
index++;
if(key==”fchilds”&&obj[one][key]['invitezcount']!=0){
var aqi = qi;
if(index>1)aqi+=” ”
GetShow(obj[one][key],aqi,index)
}
if(key != ‘fchilds’){
if(key==”fuid”){
str += qi+key+”=”+obj[one][key] + “,”;
}else{
str += key+”=”+obj[one][key] + “,”;
}
if(key == “furl”){
str+=”<br/>”;
}
}
}
if(one==”invitezcount”||one==”invitecount”){
str+=qi+one+”=”+obj[one]+”<br/>”;
}
}
}
//固定参数do=charadegarden&action=getinfo&invite=1,fuid为测试时使用,不填写将调用系统当前登录的用户ID
var url = ‘http://localhost/home/space.php?do=charadegarden&action=getinfo&invite=1&fuid=344′;
$.get(url,function(html){
//获得json并转为对象
if(html){
var obj = eval(”["+html+"]“);
GetShow(obj[0],”",1)
document.write(str);
document.write(”<br/><br/><br/><br/>”);
document.write(”<b>JSON格式:</b><br/>”);
document.write(html);
}
});
</script>

这样,两个无限级的操作就完成了,结果截图:

Hacking Bash History

不错的bash攻防指引。

[==============================================================================]
[---------------------------[ Hacking Bash History ]---------------------------]
[==============================================================================]

By: ithilgore - ithilgore.ryu.L@gmail.com
July 2008

-------------[ Table of Contents ]-------------

   i.  Preface
   ii. Hardening bash_history
  iii. Attacking the logging mechanism
   iv. Hacking bash - interfacing with syslog
    v. Conclusion
   vi. References

[ i. Preface ]
==============

Bash is probably the most widely used shell in the *nix world and one of it's
features is the history mechanism. The history mechanism is mainly used for the
user's convenience - less typing -> work done faster. However, it has been
discussed that bash_history can also be used as a logging mechanism to monitor
users' activity. This article covers the arguments against the above and why the
mechanism is useless against someone who thinks out of the box. We are going
to see that every defensive measure taken for protecting the history file can
be subverted with little or no difficulty. The discussion will be increasive
in the strictness of the methods applied but that doesn't meant they will be
increasingly difficult to implement. Most of them are no-brainers. In the end,
we are going to meddle with the bash source code to make the logging mechanism
(at first sight) "invincible" and we are going to see why even that can fail.

[ ii. Hardening bash_history ]
==============================

Suppose you are an administrator of a shell-providing box and there is a really
pesky user whose activities you would like to monitor, since you are really
suspicious about what he does late at night with the precious CPU power and
system resources that you have pledged to protect against malicious (or other)
usage. Let's call the user Bob - enough of using Trinity as the "bad" one all
the time. Since all users use bash as their default shell in the server, you
start making a few changes to the bash configuration files. 

// Step 1 //

-- Make the bash history and relevant files undeletable/unchangeable.

The first thing Bob would probably do would be to symlink his history to
/dev/null.

bob$ rm ~/.bash_history
bob$ ln -s /dev/null  ~/.bash_history

That can be prevented by making that file append-only. This can be accomplished
by issuing the following command:

# chattr +a /home/bob/.bash_history

This will use file system extended attributes to mark the file as append only.
Most filesystems (ext2/3, XFS, JFS) support this. On FreeBSD the same
would be done by issuing:

# sappnd /home/bob/.bash_history

You might also want to apply this to all the bash configuration files that
are read during bash startup: 

# chattr +a /home/bob/.bash_profile
# chattr +a /home/bob/.bash_login
# chattr +a /home/bob/.profile
# chattr +a /home/bob/.bash_logout
# chattr +a /home/bob/.bashrc

The first three are read by bash in that order (after reading /etc/profile
which applies to all users) when an interactive login bash shell (or a
non-interactive shell with the --login option) is invoked.
.bashrc is only read when a non-login interactive shell is invoked. That means
the case when the user has already logged in and invokes a new bash shell by
himself like: 

bob$ bash 

Note that .bashrc is the *only* configuration file that is read in this case.
The other 3 conf files are *not* read again.

After doing the above changes, it's time to move on to some more "hardening".
One more step towards (futile) protection.

// Step 2 //

-- Configure .bash* configuration files 

All changes will be made to .bashrc. It is assumed the other three
configuration files mention reading .bashrc in their body. This means that
.bashrc is read in *every* case (whether the user just logins or invokes a new
bash shell after he has logged in).

By making all changes to .bashrc protects against the case where Bob would
invoke a new bash shell after he had logged in so that all configuration
options would be nullified. If the options were only at the three main
configuration files (.bash_profile, .bash_login, .profile) then the above would
happen. On the other hand, these files must read .bashrc in their body so that
the options mentioned to .bashrc are actually applied in the first login shell
as well.

# cat >> /home/bob/.bashrc << EOF
> shopt -s histappend
> readonly PROMPT_COMMAND="history -a"
> EOF

The option histappend orders bash to append the last $HISTSIZE lines to the
$HISTFILE file (normally ~/.bash_history) whenever an interactive shell exits.
By default, bash overwrites $HISTFILE each time so that only one session is
kept to save space.

The enviromental variable PROMPT_COMMAND holds a command that is to be executed
prior to issuing each prompt. This means that "history -a" is executed prior
to every command the user issues. This ensures that whatever command was typed
just before the current one, is immediately appended to $HISTFILE. This ensures
more robustness in the logging mechanism, as bash doesn't wait until the whole
session is finished to transfer to the disk the history lines from the memory.
The readonly attribute is used so that this variable is marked as non-writeable
in case Bob wants to ovewrite it and most probably nullify it.

One last substep to the above changes would be to mark as readonly all the
environment variables associated with bash_history:

readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE

// Step 3 //

- Disable all access to all other out of the box shells of the system. Usually,
these will be csh, tcsh and maybe ksh. 

# chmod 750 csh
# chmod 750 tcsh
# chmod 750 ksh

This will prevent Bob from changing his shell from bash to another one.
Now, the astute administrator will complain that the above are *not*
the only shells out of the box! This is both true and false. But before you jump
to quantum theory conclusions based on the above statement, let's clear some
things up.
A long time ago ...(you know the rest), there was only the Bourne shell or sh.
Nowadays, /bin/sh is actually a symbolic link to /bin/bash. Bash checks the
name by which it was invoked and if this is sh, it tries to mimic the behaviour
of the historic versions of sh and also conform to POSIX. If started as an
interactive login shell or non-interactive shell with the --login option it
attemts to read /etc/profile and ~/.profile for startup configuration. If it is
invoked as an interactive shell, then it tries to expand the variable $ENV and
if it is not empty, uses its value as the configuration file to read and
execute. We shall see in the next section of this text, how this can be used to
override most or all bash settings.

[ iii. Attacking the logging mechanism ]
========================================

It is time to see the whole thing from Bob's perspective. We are going to
examine how each of the above steps can be subverted. In practice, the
possibilities are endless. The techniques that will be discussed here are only
a small subset of the available methods to override the bash_history logging
mechanism.

// Method 1 //

-- Use the Bourne shell /bin/sh as an escape mechanism

$ /bin/sh 

Invoking sh will result in bash mimicing the historic version of sh and as
mentioned above will not read any configuration files directly related to bash.
Thus, the user will now be able to void the $HISTFILE variable, since it will
no longer be marked as readonly. 

$ unset HISTFILE

This will make the logging mechanism inactive for the current session, as the
variable controlling the file where the commands are logged, will be empty.

Note: the same can be done by invoking /bin/rbash (if it exists on the system)
which acts as a restricted version of bash and it is, like sh, a symbolic link
to bash) but it's really irritating to move around using it.

// Method 2 //

-- Order bash to not read the .bashrc configuration file

This can be done by invoking bash like this:

$ /bin/bash --norc

This will inhibit bash from reading .bashrc and thus the variables marked as
readonly will be writeable. Then you can type something like:

$ HISTFILE= 

which will clear the $HISTFILE variable -> no history

[ iv. Hacking bash - interfacing with syslog ]
==============================================

We can clearly deduce from the above that any conventional means to secure
the bash_history is actually futile. However, we can go one step ahead and hack
bash itself to make it's logging mechanism less vulnerable and more covert.
Note that even this can be subverted. Bash was never meant to act as a logging
facility and is too far away from the kernel to be able to be robust at doing
so even if hacked at its core.

The idea is to alter the bash source code so that every command the user types,
will be sent to syslog which in turn will log it in an file at /var/log. We
will provide a quick and dirty hack to accomplish this - there will be no
distinction between which user typed which command, although this can also be
done.

The best place to put our interface is the parse.y file which consists of the
yacc grammar for bash. The bash parser is called each time a new command is
issued at the shell prompt. Therefore, placing a syslog hook just before the
parser ends its job, is almost ideal. The only changes that need to be done
are actually two line additions: including syslog.h and making syslog(3) call.
The alterations were made to bash-3.2 source code:

---------------------------------------------------------------------------

[ithilgore@fitz]$diff -E -b -c ~/bash-3.2/parse.y ~/hacked_bash/parse.y

*** ../../bash-3.2/bash-3.2/parse.y     Tue Sep 19 13:37:21 2006
--- parse.y     Sat Jul 12 18:32:26 2008
***************
*** 19,24 ****
--- 19,25 ----
     Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */

  %{
+ #include <syslog.h>
  #include "config.h"

  #include "bashtypes.h"
***************
*** 1979,1984 ****
--- 1980,1986 ----
        shell_input_line_len = i;             /* == strlen (shell_input_line) */

        set_line_mbstate ();
+         syslog(LOG_LOCAL0 | LOG_CRIT, "%s", shell_input_line);

  #if defined (HISTORY)
        if (remember_on_history && shell_input_line && shell_input_line[0])

---------------------------------------------------------------------------

The above call generates a log message that will be distributed by syslogd
with a priority of LOG_CRIT to the facility specified as local0. For this
to work, /etc/syslog.conf *must* include a line like the following:

local0.crit		/var/log/hist.log

Every command issued by a user using the bash shell will now end up in the
/var/log/hist.log file which will normally be readable only by root.

Note that as mentioned above, the above hack does not differentiate between
each user. More work needs to be done for that. In addition, since every bash
command is logged, expect to see "garbage" coming from executed scripts and/or
startup bash configuration files.

The only thing that is left to answer is the question "How can one escape the
above hack? " It is fairly simple: 

----> Compile/transfer and use your own *clean* version of bash (or any other
      shell).

Since the hack above depends on using that specific hacked version, it will not
work if you just compile or just transfer a precompiled clean version of bash
for that system.

[ v. Conclusion ]
=================

Bash is a shell, not a logging mechanism and bash_history was only meant to
provide the user with the convenience of less retyping. Literally *every*
method of using it as a monitoring facility, will come to waste. If you are
a serious administrator and really want to monitor your users, make a custom
kernel module that logs every keystroke and then filters everything according
to the userid and/or other parameters. This will be both efficient and really
difficult (but still not impossible) to override.
Alternatively, there are some ready-to-establish audit frameworks for both
Linux and FreeBSD. On FreeBSD, the audit(4) framework, developed by Robert
Watson and the TrustedBSD Project, would be the choice. More info at
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/audit.html . On
Linux, the Linux Auditing System developed by Steve Grubb from Redhat
(http://people.redhat.com/sgrubb/audit/) would be the way to go.

[ vi. References ]
==================

a. bash & syslog man pages
b. bash-3.2 source code -http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz
c. thanks go to
	- Michael Iatrou for pointing out a correction
	- gorlist for participating in a mini-wargame, set up to test the
	subject