Linux Mount Windows域用户限制的共享文件夹

发布于: 2008年01月18日

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接。

Linux下使用smbfs形式访问windows共享文件夹是众所周知的事情,可以用如下mount命令实现:

#mount -t smbfs -o username=youruser,password=yourpass,iochartset=cp936,codepage=cp936 //ip/sharefolder /mount/point

这里假设对方的文件夹编码格式是gb2312或gbk,如果是utf8格式,请将cp936改为utf8,下同。

当局域网用户认证是基于域控制器的时候,上述命令就行不通了,因为用户名需要在域服务器上去认证,而命令没有指定,结果无非认证失败。

据我所知,目前能够支持域认证的文件管理器只有Gnome下的naulitus,即使最新的KDE4的Dolphin也无法做到。能够支持域认证的文件管理器除了Gnome下的naulitus以外,至少还有konqueror(特此更改,感谢yanqian提出修改建议)

如果你在域控制器管理用户的公司局域网内使用Linux,是不是就被限制到Gnome下了?这里我终于找到了命令行mount的方法。使用如下命令:
#mount -t cifs -o username=domain\\youruser,password=yourpass,iochartset=cp936,codepage=cp936 //ip/sharefolder /mount/point

要能够成功mount smbfs文件格式必须要安装samba服务并启动它。要成功执行上面这个命令需要先安装一些额外的软件包,这里只局限于Ubuntu(我不是Ubuntu的fans,但是谁让它这么流行呢),他们是:libsmbclient,libpam-smbpass,可以使用如下命令:

#apt-get install libsmbclient libpam-smbpass

安装上述软件包后,还会生成mount.cifs变种命令,上述命令还可以变成更直观的:
#mount.cifs -o username=youruser,domain=yourdomain,password=yourpass,iochartset=cp936,codepage=cp936 //ip/sharefolder /mount/point

结束语:

至此,让我的256MB内存不再需要运行于臃肿的Gnome桌面环境了,xfce4+rox-filer更适合我;应用程序访问共享文件夹就像访问本地文件一样,不需要copy来copy去了。在上一篇文章四个月只用Linux作为办公室桌面的体验里面提出的这些问题得到了很好的解决。

四个月只用Linux作为办公室桌面的体验

发布于: 2008年01月13日

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接。

因为在业余时间在Linux 下搭建了LAMP(Linux+Apache+MySQL+PHP)服务,并用PHP写了一个小系统给部门内部用。结果部门同事用得很爽,我的电脑却只能用Linux作为办公桌面了。下面讲讲这四个月来作为Linux桌面用户的一些感受。

1.Linux发行版:Ubuntu7.04,后升级为Ubuntu7.10

2.桌面环境:一般用Gnome, 在确定不用网络公共碟的情况下,为了不让256MB RAM郁闷的运行大量的程序,会用Xfce4,并用rox-filer作为文件管理器。

遗憾:公司使用Windows域控制器管理用户帐户,访问局域网公共碟必须使用域帐号验证。目前支持域帐号验证的文件管理器,貌似只有Gnome的Nautilus,其他轻量级文件管理器还没有捣鼓出来过。另外,几乎所有文本编辑器不支持直接对域公共碟的访问,要查看或者编辑一个域公共碟里面的文件,必须先Copy到本地磁盘。

3.浏览器:虽然Opera比Firefox更快,兼容性也许更好,但是可能是习惯问题,也许是对扩展的依赖。日常使用还是Firefox。 虽然也装了IEs4Linux,但是除了调试网页以外,几乎不用。另外,Opera和加上wmlbrowser扩展的Firefox可以访问”http://wap.newone.com.cn/“专门为手机上网设置的WAP网页, 一定程度上解决了网上因为不能用IE而被限制的网上金融业务。

遗憾:基本上还是网页兼容问题。公司内部的一些网页系统,特别是javascript或jsp写的东西,只有IE才能完全正常得解释。

4.邮件客户端: 公司用Notes作为邮件客户端,跟IT部门提过意见,希望能开通POP服务无果。况接还有很多应用系统是基于Notes的,逼不得已,用wine模拟了一个Notes。对于这个问题,我特别写了一篇文章,Ubuntu 7.10下使用Lotus Notes 6.5。解决了大部分基本需求。

遗憾:虽然wine模拟的软件速度没有成为弊病,但是还是不太完美。除了那篇文章里面提到的两个问题以外,还有一些notes里面的小应用系统不能正常运行的问题。

附上原来发现的两个问题:

a)不知道什么原因,有些中文字会出现乱码。但是大部分没有问题。原因查找中
b)我用SCIM,输入文字的时候,感觉shift键按下后会持续作用,除非你再按一下。不知道这个是不是wine的bug

5.Office软件:这个也许可以算是微软垄断Office软件造成系统迁移成本上的最大问题。开始的时候使用Openoffice.org,但是兼容性很不好。后来改用永中集成Offcie 2007 试用版。就我看来,它是目前为止Linux下对MS Office兼容最好的Office产品(最好,但不是完美)。Windows下兼容最好的应该是金山WPS Office 2007

遗憾:除了兼容性以外,永中Office使用Java写的,于是理所当然的软件运行的速度成了最大问题,特别是在可怜的256MB RAM上来讲。这里我并不抨击永中的软件工程师,相反的就用Java写的这么大一个软件而言,它的运行速度已经大大超出我们的预料之外了。

6. 文本编辑器:这点来说应该是Linux的强项。我用emacs。习惯了之后才发现编写程序的同时,可以不用鼠标会提高效率。

7. 下载软件:Linux下没有类似迅雷的软件。但是办公电脑不需要有太强大的下载软件。特别是用Ubuntu,需要什么应用软件,只要apt-get 就好了,不需要满世界找,然后用下载软件下载。所以目前在firefox下,用flashgot搭配MultiGet这个多线程下载软件已经足够了。对于BT,电驴等协议的下载软件就跟不需要化时间去配置了,因为在公司本来就不允许使用

8. IM软件,用pidgin可以搞定一切了。由于公司网络限制,大部分人都不能使用QQ/MSN等通讯工具。使用tor+pidgin轻易的突破了网络限制,到变得有优越感了:)

通过四个月的使用体验和以上总结,我发现虽然有一些困难,在Windows的大环境下使用Linux作为桌面并非不可能。在减少大量的软件开支的目的下,也许前卫的公司可以试着做做看了。

Ubuntu 7.10下使用Lotus Notes 6.5

发布于: 2008年01月08日

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接。

问1:IBM都已经推出Notes for Linux 7.0/8.0了,为什么要使用Lotus Notes 6.5?

因为:

1.公司使用的服务器版本是Lotus Domino 6, 未经证实的消息称号称7.0以上for Linux版本的notes客户端不能访问Domino 6服务端

2.IBM推出Notes for Linux 版本,并不表示可以免费使用。下载了60天试用版本的note for Linux 8.0客户端,安装完毕后并不能运行,它告诉我需要IBM Workplace Management Client. 结果我没有在网上找到可以下载的地方(也许只有花钱才能买到)。另外还有一个谣言说,for Linux的8.0客户端需要512MB RAM才能成功安装,可怜我的机器只有256MB RAM。同时我也失去了一个能证实原因1的机会。

问2:既然 Lotus Notes 6.5 没有 for Linux版本,将如何实现?

用Wine 模拟。我知道这是个下策,但是在公司邮件不支持POP,notes下各种功能并不能由简单的webmail实现的情况下,也只能用此下策了。

下面简单描述过程:

步骤一:安装Wine

说到这个我有点惭愧。我一向不喜欢用Wine,因为我被Easywine描述的复杂配置吓怕了。至于为什么我的机器上会有wine? 那是因为我安装了Picasa2 for Linux 以及IEs4Linux, 于是就有了wine.说出来还真的不太好意思。如果你的机器上还没有wine,不妨像我一样试试。icasa2就不说了,那个安装过程跟windows里面一向,IEs4Linux安装参考这里:

http://forum.ubuntu.org.cn/viewtopic.php?t=55988&highlight=IEs4Linux+%E5%AE%89%E8%A3%85

步骤二:使用Notes(不会那么快吧?)

这里我假设你是双系统,并在Windows下有已经安装了客户notes6.5客户端。

将c:\Program Files\lotus 整个目录copy到你的用户目录的.wine/drive_c/Program Files目录下参考如下命令:
cp -rf /media/sda1/Program\ files\lotus ~/.wine/drive_c/Program\ Files/

再copy windowsxp下2个dll文件到wine目录:
cp /media/sda1/WINDOWS/system32/mfc42u.dll ~/.wine/drive_c/windows/system32
cp /media/sda1/WINDOWS/system32/msvcp60.dll ~/.wine/drive_c/windows/system32

以上两行命令请根据实际情况注意目录和文件名的大小写。

运行:wine "c:\Program Files\lotus\notes\notes.exe"

恭喜你可以使用notes了。

FAQ:
1.中文字体发虚?
将windows下的simsun.ttc字体文件copy到~/.wine/drive_c/windows/Fonts目录下。

2.有些按钮不能显示汉字,而是”<<<“这样的符号
运心wine regedit.exe, 修改
[Local Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]
"MS Shell Dlg"="SimSun"
"MS Shell Dlg 2"="SimSun"

3.可以不copy lotus整个目录到Linux下吗?
理论上可以,但是由于运行时由于实际目录与notes.ini的设定目录不一致,会运行出错。你可以修改与notes.exe同目录的notes.ini文件里面的相关目录试试。但是如果你仍然可能回到windows下使用Notes,建议还是不要这样做。

4. note程序不算小,wine模拟的速度如何?
这个是我最感到欣喜的地方。我一向不看到wine的速度,但是这个运行起来不会比windows下慢。

5. wine模拟有没有瑕疵?
有:
a)不知道什么原因,有些中文字会出现乱码。但是大部分没有问题。原因查找中
b)我用SCIM,输入文字的时候,感觉shift键按下后会持续作用,除非你再按一下。不知道这个是不是wine的bug

Gnome 中无法修改文件名的解决方法

发布于: 2008年01月04日

也许你也是Gnome用户,也许你使用SCIM输入法,也许你也碰到在文件管理器Nautilus中修改文件名的时候,Nautilus的地址栏中无法输入任何字符的情况,告诉你,这是输入法在作怪。下面是解决办法:

临时办法:在需要输入字符的地方右键->指向“输入法”->选择“SCIM input method”即可。

彻底解决:编辑/etc/X11/xinit/xinput.d/目录下的scim文件(Ubuntu7.10 里的目录),找到其中三行改成如下

XIM=SCIM
GTK_IM_MODULE=SCIM
QT_IM_MODULE=SCIM

保存文件。
重启X。
Done.

google 推出Picasa 2.7 Beta for Linux

发布于: 2007年12月16日

虽然Picasa for Linux的最近正式版还是2.2,但是google 于最近的推出了for Linux的Picasa Beta 版本号已经是2.7.

官方网站上提供了三个安装版本,rpm(32/64位通用?),32位deb以及64位deb,下载地址分别如下:
* rpm, for Red Hat/Fedora/Suse/Mandriva i386 or x86_64:
http://dl.google.com/linux/rpm/testing/i386/picasa-2.7.3736-7.i386.rpm
* deb, for Debian/Ubuntu i386:
http://dl.google.com/linux/deb/pool/non-free/p/picasa/picasa_2.7.3736-7_i386.deb
* deb, for Debian/Ubuntu amd64:
http://dl.google.com/linux/deb/pool/non-free/p/picasa/picasa_2.7.3736-7_amd64.deb

下载32位deb包,升级了现有的2.2版本,试用了一下。这个版本的Picasa还是用Wine模拟的,看起来google已经不打算将做原生的Linux版本Picasa了,但是优点还是不少的:
1.速度还是可以的,256M内存跑起来不显得慢
2.操作界面已经是中文化了,但是字体有点难看,排班也不太整齐
3.原来中文图片目录一律乱码,现在已经能显示中文了
所以看起来还是值得升级的。

使用自由加密软件PHP screw对PHP源码加密

发布于: 2007年12月09日

本文为寻找人生的起点(http://blog.cn-ic.org)原创,如需转载,请注明出处,并保留原文链接。

我学PHP比较晚,完全没有接触过PHP3。等我意识到需要为php源码加密的时候,满世界的信息告诉我PHP的Zend已经可以完美反编译了。另外就是Zend是需要收费的商业软件(虽然也有30天的试用版本)和增对Zend加密指导文档的匮乏。

于是我选择了PHP screw 这款轻量级的加密软件。

采用BSD License

支持所有POSIX系统(Unix/Linux/Linux Like),不支持Windows.

最新版本是php_screw_1.5,更新时间2007-10-16.

官方站点位于sourceforge:http://sourceforge.net/projects/php-screw/

官方站点只能下到源码

1.从官方站点下载最新版本:

http://sourceforge.net/project/showfiles.php?group_id=52025

以下按我下载的php_screw_1.5为例: php_screw_1.5.tar.gz

2.解压缩:tar zxvf php_screw_1.5.tar.gz

3.通过README.en文件可以看到该版本软件包要求PHP5.x 环境,并要求zlib支持(通过执行脚本<? gzopen(); ?>来检查)。如果你使用的是PHP4.X版本,请下载php_screw_1.3版本

4.进入源码目录

#cd php_screw_1.5

先执行

#phpize

如果提示上述命令不存在,可能是由于你的php没有安装在标准目录下,请到php安装目录的bin文件夹下寻找,确定是否有该文件。然后回到php_scre_1.5目录下,执行

#/full/path/to/phpize

要成功执行phpize,需要有autoconf 和M4软件包。成功执行后,源码文件夹下出现configure文件

执行:

./configure

如果php安装在非标准目录,需要查看在phpize目录下是否有php-config文件,然后执行该目录如下

./configure –with-php-config=/full/path/to/php-config

5.自定义加密种子文件,这个可能是该程序的亮点

用你喜欢的文本编辑器打开源码目录下的my_screw.h,修改文件里面的数组文件,可以用数字添加该数组的长度。数组越长,加密越可靠。而且该数组的长度不会影响加密以及你的PHP程序执行的速度.

修改完my_screw.h文件以后执行

#make

6.正常执行完make后,你可以在源码目录的modules文件夹下找到php_screw.so文件。将该文件copy到phpinfo()里面extension_dir所指的目录下,然后在php.ini文件里面添加

extension=php_screw.so

重启apache,查看phpinfo()里面应该有php_screw的相关信息

7.转到源码目录下的tools文件夹,执行

#make

这里是编译php源码到php加密文件工具:screw

上面的php_screw.so其实是解析加密后的php源码

编译screw过程中会用到my_screw.h文件,所以请保证编译php_screw.so和screw时使用的my_screw.h文件一致。

make完成后会在tools目录下产生screw可执行文件,你可以把它放到任何你喜欢的path目录,如/usr/local/bin,/usr/bin等,确保你键入screw命令时可以找到

8.切换到你的php源码目录,比如你要加密phpinfo.php文件则执行

#screw phpinfo.php

则产生phpinfo.php这个加密文件,原文件copy为phpinfo.php.screw.打开phoinfo.php文件可以看到一堆乱码。通过web访问phpinfo.php以及phpinfo.php.screw则显示同样内容

9. php_screw_1.5有一个缺点就是screw 加密工具一次只能执行一个文件,如果你切换到你的php源码目录执行

#screw *

不会有任何文件被加密,如果要加密上百个文件,那正是灾难

解决办法如下 ,执行

#find /path/to/php/source -name “*.php” -print | xargs -n1 screw

可以对/path/to/php/source目录下的所有后缀为php的文件加密,包括子目录下的。

这样就基本做到的对php源码的加密。如果只是个人的小程序源码的加密,我想php_screw是一个不错的选择

浙ICP备18056264号-1