【问题标题】:SSH Xforwarding changing user accountsSSH Xforwarding 更改用户帐户
【发布时间】:2014-02-26 01:57:36
【问题描述】:

我正在尝试编写一个脚本来或多或少地自动安装 oracle 数据库以及我自己的一些其他应用程序。我还没有写一行,因为我想先手动完成所有步骤。

所以,我的环境如下。我有没有图形界面的 RHEL 5。我正在以 root 身份通过 SSH 从 Windows 笔记本电脑连接到服务器。我启用了 XForwarding,所以当我使用 root 帐户登录时,我可以运行 xdpyinfo 以便检查 XServer 配置。

我需要 XForwarding,因为 Oracle DB 安装过程需要 XServer。但是,Oracle 需要用户 oracle 来执行安装。我已经创建了 oracle 用户,但是当将用户从 root 更改为 oracle 时,我无法再运行 xdpyinfo 命令,因此 Oracle 安装过程失败。我收到以下错误:

Xlib: connection to "localhost:10.0" refused by server
Xlib: PuTTY X11 proxy: wrong authorisation protocol attempted
xdpyinfo:  unable to open display "localhost:10.0".

我曾尝试使用 xhost 使我的笔记本电脑能够访问我的服务器,但我也未能成功。

【问题讨论】:

  • A silent install with a response file 如果您想自动执行此操作可能会更有意义,并且会使这变得不必要。你为什么不只是以 Oracle 用户的身份登录呢?
  • 因为在安装应用程序之前 oracle 用户不应该存在,我将使用我的脚本创建用户,然后从 root 更改为 oracle 并开始安装 Oracle。我会看看带有响应文件的静默安装

标签: oracle ssh rhel xserver


【解决方案1】:

如果你真的觉得有必要这样做,那么当你是 root 时,获取当前的 $DISPLAY 值,特别是冒号后面的第一个值,在你的情况下是 10。然后找到当前会话的 X 授权令牌:

xauth list | grep ":10 "

这会给你类似的东西:

hostname/unix:10  MIT-MAGIC-COOKIE-1  2b3e51af01827d448acd733bcbcaebd6

在您suoracle 帐户之后,$DISPLAY 可能仍然设置,但如果没有设置它以匹配您的基础会话。然后将xauth 令牌添加到您当前的会话中:

xauth add hostname/unix:10 MIT-MAGIC-COOKIE-1 2b3e51af01827d448acd733bcbcaebd6

完成后,您可以使用以下命令进行清理:

xauth remove hostname/unix:10

假设 PuTTY 在 Connection->SSH->X11 部分中配置为使用 MIT-Magic-Cookie-1 作为远程 X11 身份验证协议。如果将其设置为MDM-Authorization-1,那么您使用xauth 获取和设置的值将改为XDM-AUTHORIZATION-1

断开与root 的连接并以oracle 的身份启动一个新的ssh 会话以继续安装可能会更简单,这也可以确保您不会像root 那样意外地做任何意外的事情。好吧,直到你必须运行root.sh,无论如何。

如果你做一个silent install with a response file then you don't need a working X11 connection anyway;您只需要设置$DISPLAY,但实际上并没有在该显示器上打开任何内容,因此xdpyinfo 或任何其他X11 命令是否会失败并不重要。我不确定您是如何考虑编写 X11 会话的脚本的,但即使有可能,静默安装也会更简单且可重复。

【讨论】:

  • 谢谢!我决定改为使用静默安装选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
相关资源
最近更新 更多