2015-08-06

X-Session security

从一台windows机器上ssh到一台RHEL上,以root用户能正常启动带X windows界面的程序,可是以普通用户esbadmin却无法启动,报错:

Xlib: connection to "localhost:10.0" refused by server
Xlib: MobaXterm X11 proxy: Unsupported authorisation protocol

Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.

执行xhost的结果:
Xlib: connection to "localhost:10.0" refused by server
Xlib: MobaXterm X11 proxy: Unsupported authorisation protocol

xhost:  unable to open display "localhost:10.0"

以为是DISPLAY环境变量设置不对,可是与root用户同样的DISPLAY变量还是会得到同样的错误。

原来是和 X-Session security有关。以root用户执行xauth list得到一个列表:

besb01/unix:15  MIT-MAGIC-COOKIE-1  83aa78de1155733b1cefe4fc63839d1a
besb01/unix:16  MIT-MAGIC-COOKIE-1  5f6da97c370785b55288c31bc29f7b27
besb01/unix:10  MIT-MAGIC-COOKIE-1  e91f2af3747fb0095e085dcd7dd49423
besb01/unix:11  MIT-MAGIC-COOKIE-1  8037d90b9d1bf3503aaaf61c0affe4b5
besb01/unix:12  MIT-MAGIC-COOKIE-1  86667f99f925914907f12d25a6f51bc1
besb01/unix:13  MIT-MAGIC-COOKIE-1  1714acffefffd2988c4c4f1be618d9b4
besb01/unix:14  MIT-MAGIC-COOKIE-1  b16eea1237d2823f3dc9e400f123063e


复制unix:14那一行,然后以esbadmin用户执行下面的命令即可。

xauth add besb01/unix:14  MIT-MAGIC-COOKIE-1  b16eea1237d2823f3dc9e400f123063e

2015-07-26

创建tibco BW domain

创建tibco bw domain本是一件简单的事,运行domainutility程序,图形化界面,向导式的一步步照着做就好了,可是有些坑被我踩到了。

目标机器是远程的一台Red Hat Enterprise Linux Server 5.6,经过一台jump server ssh过去的。本来是要用另外一个用户去运行domainutility来创建domain,可是remote display设置好像不对,X server启动了,可是就是无法启动domainutility,总是报错:

可是以root身份却能启动 domainutility的图形化界面,把root用户的DISPLAY变量复制到另外一个用户仍然报错,不能启动图形化界面。不想在这儿折腾太久了,心想先以root身份创建然后再用chown更改文件所有者好了。创建完毕,文件所有者也更改了,然后以另一个用户的身份去运行,直接报错内存访问错误Speicherzugriffsfehler。换作root用户与运行报告同样的错误。用strace一看:
open("/root/bin", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 EACCES (Permission denied)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

看样子还真是和以root用户运行domainutility有关。

2015-07-09

安装Tibco EMS 8.2.1

在一台Linux machine CentOS 6.6上安装Tibco EMS 8.2.1,安装过程没有报错,不过在安装日志里会发现下面的错误:

(07-09-2015.083025), ::ERROR::, WizardAction exception encountered., class com.tibco.installer.util.TIBCOUniversalInstallerAction
(07-09-2015.083025), ::ERROR::, null, class com.tibco.installer.util.TIBCOUniversalInstallerAction
(07-09-2015.083025), Debug, 
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.tibco.installer.util.TIBCOUniversalInstallerAction.executeDialogAction(TIBCOUniversalInstallerAction.java:613)
at com.tibco.installer.wizard.action.TIBCORunInstaller._executeDialogAction(TIBCORunInstaller.java:252)
at com.tibco.installer.wizard.action.TIBCORunInstaller._runSequence(TIBCORunInstaller.java:185)
at com.tibco.installer.wizard.action.TIBCORunInstaller._runInstallSequences(TIBCORunInstaller.java:90)
at com.tibco.installer.wizard.action.TIBCORunInstaller.run(TIBCORunInstaller.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.tibco.installer.util.TIBCOUniversalInstallerAction.executeWizardAction(TIBCOUniversalInstallerAction.java:529)
at com.tibco.installer.wizard.action.TIBCORunWizardAction.execute(TIBCORunWizardAction.java:26)
at com.installshield.wizard.StandardWizardListener.execute(Unknown Source)
at com.installshield.wizard.StandardWizardListener.currentBeanChanged(Unknown Source)
at com.installshield.wizard.Wizard$RunThread.run(Wizard.java:1829)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/istemp14304190082624/_bundledJRE_/lib/i386/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.loadLibraries(Unknown Source)
at java.awt.Toolkit.<clinit>(Unknown Source)
at sun.awt.AppContext$2.run(Unknown Source)
at sun.awt.AppContext$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.initMainAppContext(Unknown Source)
at sun.awt.AppContext.access$400(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.getAppContext(Unknown Source)
at javax.swing.text.html.parser.ParserDelegator.getDefaultDTD(Unknown Source)
at javax.swing.text.html.parser.ParserDelegator.setDefaultDTD(Unknown Source)
at javax.swing.text.html.parser.ParserDelegator.<init>(Unknown Source)
at com.tibco.installer.util.TIBCOHtmlToTextConverter.parse(TIBCOHtmlToTextConverter.java:33)
at com.tibco.installer.util.TIBCOHtmlToTextConverter.<init>(TIBCOHtmlToTextConverter.java:21)
at com.tibco.installer.wizard.action.TIBCOPreInstallSummaryPanelWizardAction._doConsole(TIBCOPreInstallSummaryPanelWizardAction.java:64)
at com.tibco.installer.wizard.action.TIBCOPreInstallSummaryPanelWizardAction.run(TIBCOPreInstallSummaryPanelWizardAction.java:26)

... 18 more


Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.SunToolkit
at sun.awt.AppContext$2.run(Unknown Source)
at sun.awt.AppContext$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.initMainAppContext(Unknown Source)
at sun.awt.AppContext.access$400(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at sun.awt.AppContext$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.AppContext.getAppContext(Unknown Source)
at javax.swing.SwingWorker.getDoSubmit(Unknown Source)
at javax.swing.SwingWorker.<init>(Unknown Source)
at com.tibco.installer.util.TIBCOAntTaskRunner.<init>(TIBCOAntTaskRunner.java:20)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks._executeMachineModelAntTask(TIBCOExecutePostInstallAntTasks.java:651)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks._updateMachineModel(TIBCOExecutePostInstallAntTasks.java:562)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks._doConsole(TIBCOExecutePostInstallAntTasks.java:160)
at com.tibco.installer.wizard.action.TIBCOExecutePostInstallAntTasks.run(TIBCOExecutePostInstallAntTasks.java:57)

结果是不能启动tibemsd64,根据提示/opt/tibco/ems/8.2/lib/64目录下symbolic links缺失。看样子是安装时没有被创建,需要在/opt/tibco/ems/8.2/lib/64目录下手动创建下面几个links才能启动tibemsd64。

libcrypto.so -> libcrypto.so.0.9.8
liblber-2.4.so -> liblber-2.4.so.2.5.5
libssl.so -> libssl.so.0.9.8
libxml2.so -> libxml2.so.2.7.6

yum install libXext.i686 安装了
Installing : libXau-1.0.6-4.el6.i686                                                                                                           
Installing : libxcb-1.9.1-2.el6.i686                                                                                                           
Installing : libX11-1.6.0-2.2.el6.i686                                                                                                        
Installing : libXext-1.3.2-2.1.el6.i686

之后重新安装又发现缺少libXrender.so.1
Caused by: java.lang.UnsatisfiedLinkError: /tmp/istemp3030190095829/_bundledJRE_/lib/i386/xawt/libmawt.so: libXrender.so.1: cannot open shared object file: No such file or directory
估计安装完libXrender.so后又会报告缺少另外的库。

安装gtk2.i686(yum install gtk2.i686)会安装一堆和libX相关的依赖包,包括:
libXcomposite 
libXcursor   
libXdamage  
libXfixes  
libXft    
libXi    
libXinerama
libXrandr 
libXrender

安装完gtk2后又报告缺少libXtst,Caused by: java.lang.UnsatisfiedLinkError: /tmp/istemp9782190102622/_bundledJRE_/lib/i386/xawt/libmawt.so: libXtst.so.6:

安装libcanberra-gtk2.i686(yum install libcanberra-gtk2.i686)完后才没有报错。


set64bit:

pre-assembly-ref-ems_64bit_client_runtime:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber.so liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap.so libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 libxml2.so.2.7.6 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so libxml2.so.2.7.6 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libcrypto.0.9.8.dylib and /opt/tibco2/ems/8.2/lib/64/libcrypto.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libssl.0.9.8.dylib and /opt/tibco2/ems/8.2/lib/64/libssl.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.2.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/liblber.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.2.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.2.5.5.dylib and /opt/tibco2/ems/8.2/lib/64/libldap.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libz.1.2.3.dylib and /opt/tibco2/ems/8.2/lib/64/libz.dylib 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libcrypto.sl.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libcrypto.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libssl.sl.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libssl.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.sl.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.sl.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.sl.9 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.sl.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.sl.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.sl.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap.sl 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/liblber.so 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.7 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.7.5 and /opt/tibco2/ems/8.2/lib/64/libldap.so 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.9.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so.9 

deletesymlink:

link:

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libcrypto.so.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libcrypto.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libcrypto.so libcrypto.so.0.9.8 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libssl.so.0.9.8 and /opt/tibco2/ems/8.2/lib/64/libssl.so 

deletesymlink:

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libssl.so libssl.so.0.9.8 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber.so 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/liblber.so 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/liblber.so

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber.so liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/liblber-2.4.so.2 liblber-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap.so 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libldap.so 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libldap.so

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap.so libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2.5.5 and /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libldap-2.4.so.2 libldap-2.4.so.2.5.5 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libxml2.so 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libxml2.so

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so libxml2.so.2.7.6 

checksymlinkexists:
     [echo]  checking existence of /opt/tibco2/ems/8.2/lib/64/libxml2.so.2.7.6 and /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 

deletesymlink:
     [echo]  deleting /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 
  [symlink] Removing symlink: /opt/tibco2/ems/8.2/lib/64/libxml2.so.2

link:
     [echo]  symlink /opt/tibco2/ems/8.2/lib/64/libxml2.so.2 libxml2.so.2.7.6 

BUILD SUCCESSFUL
Total time: 6 seconds

解决办法:安装EMS 8.2.1之前,先安装:
yum install glibc.i686 
yum install gtk2.i686 
yum install libcanberra-gtk2.i686

都可以使用silent安装模式,为什么installer还需要一堆libX的东西,那不是和图形界面有关的吗?

2015-04-23

putty 小技巧

需要测试一台远程机器的某个端口是否可访问时常用telnet工具。不过在windows 7上有时这个工具默认没有安装。这时可借助putty来完成,格式为:
putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]host

例子:
测试一个端口
putty.exe -telnet 192.177.71.132 1521

命令行建立一个连接
使用密码登录
putty.exe -ssh d.jia@10.35.204.253 -P 2211 -pw mypassword
putty.exe -ssh d.jia@10.35.204.253 2211 -pw mypassword

使用private key登录
putty.exe -ssh d.jia@10.35.204.253 2211 -i path/to/privateKey.ppk


端口转发,forward local port to remote destination
putty.exe -ssh d.jia@10.35.204.253 2211 -i path/to/privateKey.ppk  -L 6389:remoteServer:3389

命令行加载一个保存的连接
putty.exe -load "session name"


2015-01-06

设置Sigma Komforttelefon 890D拨号方式为音频

家里有一部很老的有线电话机,是当学生时一个德国朋友送的。底部标记为Sigma Komforttelefon 890D,自带自动应答机。这部电话机做工是非常的好,是早期产品不不节省材料的代表作,非常耐摔。

这部电话机默认的拨号方式是脉冲拨号,可见其有多老了。要把它设置成音频拨号不是拨动一个小开关,而是需要输入一串值。没有说明书的话几乎就不可能完成。没想到网上也有人问这个问题,看来德国人真是爱用”古董“。
设置方法为:拿起听筒,输入键组合 PROG * 3 PROG即可。