安装oracle时,如果不是以oracle用户登录图形界面,而是在root用户下su 到oracle,安装时会报错

无法使用命令 /usr/X11R6/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了DISPLAY 变量。

Xlib: connection to ":1.0" refused by server。

可以通过以下方式解决:

1.在root下执行

#xdpyinfo 记录下name of display:后的字符串,如

127.0.0.1:1.0

2.

#xhost +

返回信息为:

access control disabled,clients can connect from any

host

3.切换到Oracle用户:

#su - oracle

4.在Oracle用户下执行命令:

export DISPLAY=:1.0

5.在Oracle下执行xdpyinfo命令,如果能正常显示,说明设置成功

补充一下DISPLAY 知识,以下网上转载

您总是可以通过注销当前用户标识,然后以新的用户标识登录来切换到另一个用户标识。但是如果您只需要以另一个用户身份运行几个快捷的命令,那要怎么办呢?

Linux 以 su(替代用户,substitute

user)命令的形式向您提供了解决方案,该命令允许您暂时以另一个用户身份运行命令。这经常用于需要 root

访问权的任务。实际上,如果您使用终端程序(如 telnet)远程连接一个系统,那么许多 Linux 发行版本会阻止您以 root

用户身份登录。这是良好的安全性做法,我们建议您不要尝试绕开这种限制。相反,您应该以非特权用户身份登录,然后使用 su 命令成为

root。

那么,让我们假定您已经登录并正在使用终端窗口,而且您不是 root 用户,但需要以 root

用户身份运行一条命令。用于这种情形的两种最常见的 su 形式是:

su

su -

第一种形式(不带 - 符号)只是将您切换成 root,但没有更改包括路径在内的环境变量。第二种形式使用了

- 符号,如果您确实喜欢输入额外的字母,也可以输入为 -l 或者

-login 。这允许读取替代用户的登录启动文件,从而设置诸如路径、环境和提示符之类的东西。清单 4

显示了这两种形式在 SuSE Linux 系统上的示例。在两个示例中,我们都使用了 pwd

(打印工作目录,print working

directory)命令来显示当前工作目录。请注意提示符是如何变化的。如果您希望理解关于如何定制您自己的提示符,或想了解是什么使提示符以现在的形式显示的更多信息,请查阅

developerWorks 上的“技巧:提示行魔术

” 技巧文章。

ian3@echidna:~> su

Password:

echidna:/home/ian3 #pwd

/home/ian3

ian3@echidna:~> su -

Password:

echidna:~ # pwd

/root

您会注意到必须提供口令以切换到 root 用户,这一点都不足为奇。您还可以使用 su 命令切换到其他非

root 用户。例如:

su - db2inst1

如果您已经是 root 用户,则无需提供口令,但如果您不是 root 用户,那么必须提供正确的口令。

如果您正在使用 bash shell(它是大多数 Linux 系统上的默认 shell),要返回前一个标识,只要按

Ctrl-d 或输入 exit 并按 Enter

您可能注意到了,我们在

中讨论 su 命令时,只运行了在终端窗口中显示输出的命令。要能够运行 GUI

应用程序,您可能必须采取一些额外的步骤,具体步骤因 Linux 发行版本而异。 Linux 上的 GUI 应用程序使用 X

Window 系统(X Window System),它旨在允许多个用户使用窗口化的应用程序通过网络访问计算机。

X 显示器是通过 hostname:displaynumber.screennumber

这种形式的名称知晓的。运行在工作站(如 PC)上的 Linux

通常只有一个带有单个屏幕的显示器。在这种情况下,displayname 可以(并且通常会)被省略,所以显示器称为

:0.0。我们假设您在阅读本文时是使用图形方式登录的,因此您的启动已经为您设置了 DISPLAY

环境变量。但是,当您使用 su 切换到不同用户时,不会设置这个变量。清单 4 展示了如何使用

echo 命令来显示 DISPLAY 环境变量,然后切换到另一个用户并尝试启动 xclock 应用程序,最初

DISPLAY 环境变量是空的,然后将其值设置为 :0.0。这是 SUSE SLES9 系统中的示例。在 Red Hat

系统上有所不同,后面我们将会提到。

ian@lyrebird:~> whoami

ian

ian@lyrebird:~> echo $DISPLAY

:0.0

ian@lyrebird:~> su -

Password:

lyrebird:~ # echo $DISPLAY

lyrebird:~ # xclock

Error: Can't open display:

lyrebird:~ # export DISPLAY=:0.0

lyrebird:~ # echo $DISPLAY

:0.0

lyrebird:~ # xclock

Xlib: connection to ":0.0" refused by server

Xlib: No protocol specified

Error: Can't open display: :0.0

lyrebird:~ # export XAUTHORITY=~ian/.Xauthority

lyrebird:~ # xclock

lyrebird:~ # ls -l ~ian/.Xauthority

-rw------- 1 ian users 206 Feb 18 16:20 /home/ian/.Xauthority

让我们研究一下这里发生的情况。在本例中,用户 ian 登录到系统,并且正如我们所期望的那样,其

DISPLAY 环境变量被设置为 :0.0。当 ian 切换成用户 root 时,不会去设置

DISPLAY 环境变量,并且因为 xclock 应用程序不能打开显示器,所以启动

xclock 的尝试失败了。

因此,替代用户 root 设置了 DISPLAY

环境变量,并将它导出,以便它可用于可能从该终端窗口启动的其他 shell。请注意,设置和导出环境变量时不使用 $

前缀符号,但显示和用其他方法使用该值时则使用 $ 作为前缀。也要注意,如果 su 命令省略了

-(减号)符号,那么 DISPLAY 环境就已经如用户 ian 那样被设置。可是,即使设置了环境变量,但

xclock 启动还是失败了。

第二次失败的原因在于 X 的客户机/服务器本质。尽管 root

运行在该系统惟一一个显示器上的窗口中,但该显示器实际上由最初登录的用户(在本例中是 ian)所拥有。对于 Linux

系统中的本地显示器,认证通常是依赖于所谓的 MIT-MAGIC-COOKIE-1 ,每次 X

服务器重新启动时它都会重新生成。用户可以从他的(或她的)目录中的 .Xauthority 将 magic cookie

导出 (使用 xauth extract 命令),并把它提供给另一个用户,那个用户可以使用

xauth merge 将其 融合 到自己的 .Xauthority

文件。作为另一种选择,用户可以通过 xhost +local: 命令来授权其他用户对本地系统的访问。

有另一个可选方法,即将 XAUTHORITY 环境变量设置为包含正确 MIT-MAGIC-COOKIE-1

的文件的位置。当切换到 root 时,这样做很容易,因为 root 可以读取其他用户所拥有的文件。实际上,在清单 4

中我们就是这样做的,所以,在设置并将 XAUTHORITY 导出到 ~ian/.Xauthority 文件后,root

现在就可以在桌面上打开图形窗口。我们说过将会提及 Red Hat 系统的不同之处,那就是在 Red Hat 系统上使用 su 切换到

root 与 SUSE 系统稍有不同,它会为您自动完成显示器的设置。

那么,如果是切换到另一个非 root 用户时会怎样呢?在清单 4 中,您会注意到,用户 ian 的 .Xauthority

文件只允许所有者进行读写访问。甚至是同组的成员也不能读取它,这正是您所希望的,除非您乐意让某人打开一个接管您的屏幕并禁止您做任务事情的应用程序!

所以,如果您从 .Xauthority 文件中导出了一个

MIT-MAGIC-COOKIE-1,那么必须要找到某个安全的方式来将它交给您信任的非 root

用户。由于这方面的困难,您可能会发现,对单用户的 Linux 系统来说,xhost 更好用,尽管 xauth 方法通常比 xhost

命令用得更多。不过,要谨记 X Windows

系统的网络传统,以便您不会偶然地授予他人不在计划之内的权限,从而开放您的系统,让任意网络用户都可以在您的桌面上打开窗口。

用户 ian 可以使用 xhost

来赋与所有本地用户在显示器(:0.0)上打开应用程序的权限。在您的桌面上打开另一个终端窗口并输入这条命令:

xhost +local:

请注意末尾的冒号(:)。这样将允许同一系统上的其他用户连接到 X

服务器并打开窗口。由于您使用的是一个单用户系统,这就意味着您可以 su 到一个任意的非 root 用户,而且现在可以启动

xclock 或其他 X 应用程序了。

有关使用 xauth 和 xhost

命令的更多详细信息,可以根据需要使用命令 info xauth 、man

xauth 、 info xhost 或者 man xhost

来查看联机手册页。如果您对 X 连接的安全性感兴趣,可以从 Xsecure 的手册页入手。

p.s.

~/.Xauthority中每一个记录有三个字段

第1个.display name.

第2个.这个display name

使用的协议,常用的为MIT-MAGIC-COOKIE-1

第3个.随机16进制的串,是用来认证的magic

code,可以使用命令行mcookie产生这个随机串

工作原理如下所写:

Xserver

启动时,读文件~/.Xauthority,读入对应其display的记录.当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文件,并把找到的magic

code 发送给Xserver.当Xserver验证这个magic code正确以后,就同意连接啦.

观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证

oracle窗口设置,ORACLE安装DISPLAY变量设置 go with相关推荐

  1. oracle配DISPLAY,ORACLE安装DISPLAY变量设置

    安装oracle时,如果不是以oracle用户登录图形界面,而是在root用户下su 到oracle,安装时会报错 无法使用命令 /usr/X11R6/bin/xdpyinfo 自动检查显示器颜色.请 ...

  2. Oracle sqlserver mysql的自增变量设置

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow Oracle,sq ...

  3. linux环境变量设置 profile,Linux 环境变量 设置 etc profile

    一.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.永久的:需要修改配置文件,变量永久生效. 2.临时的:使用export命令声明即可,变量在关闭shell时失效. 二. ...

  4. windows 环境下(win10win7)Java8(jdk8)的下载+安装+环境变量设置全过程(超详细图文教程亲测版)

    Java8 下载安装环境变量设置全过程 一.JDK下载 1.1 官网下载 1.2 下载成果 1.3 下载过程中的注意事项 二.JDK安装 三.环境变量配置 3.1 JDK在哪儿 3.2 环境变量在哪儿 ...

  5. java环境变量设置 成功_java环境变量设置

    java环境变量设置 java环境变量设置 首先,从Sun网站上下载jdk,当前版本为1_5_0_06(其他版本亦可) 最终下载下来的文件为jdk-1_5_0_06-windows-i586-p.ex ...

  6. linux环境变量设置图解,Linux环境变量设置

    一.环境变量的概念 1.环境变量的含义 程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的. 2.环境变量的分类 1)按生效的范围分类. 系统环境变量:公共的,对全部的 ...

  7. linux环境变量设置方法,Linux环境变量设置指南

    以配置java环境变量为例 [编辑]修改/etc/profile文件 此法对所有用户生效 在文件末尾加入以下内容: JAVA_HOME=/usr/share/jdk1.5.0_05 PATH=$JAV ...

  8. java获取oracle自增_oracle 自增变量设置

    将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create  table  t_user( Id number(6),userid varchar2(2 ...

  9. 【错误记录】反射时调用方法及成员报错 ( 执行反射方法 | 设置反射的成员变量 | 设置方法/成员可见性 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在执行反射方法时 , 反射方法后 , 直接调用该方法 ; // 获取 View 的 getListenerInfo 方法 Method getLis ...

最新文章

  1. php读取远程二进制文件,php 读取二进制文件
  2. h5与小程序服务器如何辨别,小程序丨教你六招,快速区分H5页面还是APP页面
  3. jQuery.grep()
  4. 揭秘淘宝286亿海量图片存储与处理架构,互联网营销
  5. Android笔记 帧动画
  6. RxJava API使用示例
  7. Git曝最危险漏洞,允许攻击者远程执行代码!
  8. Fiddler抓取HTTPS最全(强)攻略!
  9. SparkStreaming 是火还是坑?
  10. 字符串统计,一个中文算2个字符,一个英文算一个字符
  11. 数据库分析之概念结构设计
  12. Android直播软件开发中接入腾讯IM大概流程是怎样的
  13. 致远oa读取服务器信息失败,致远OA A8V5常见问题集
  14. C++学习系列---读取文件名存入txt和从txt读取每行信息
  15. 我们应当怎样做需求确认:快速原型法
  16. 逆向工程--苹果移动端app逆向分析技术(一)
  17. Vmware设置网络设置
  18. android pm命令不可用,adb命令pm工具讲解
  19. nlp-with-transformers实战-01_transformers简介
  20. nmap学习之路--测试版

热门文章

  1. 关于js中 0 == ‘ ‘ 为 true 的问题
  2. multimodal prompting
  3. 《论文阅读笔记》Attention Bottlenecks for Multimodal Fusion
  4. 什么是软件需求?软件需求是什么意思?
  5. python“反反爬虫”
  6. html代码中文乱码解决
  7. 机器人导航学习历程(一)简介
  8. 带感小说:程序员坐牢会被安排写代码吗?
  9. java 中long型数据的对比
  10. 基础35 空心三角形