我已经尝试了数天来修复“以用户SYSDBA身份连接到主机失败。错误:NMO不是setuid-root(仅Unix)”。

我访问的所有博客无一例外地都说,要解决此问题,只需要以root用户身份运行root.sh脚本,其中脚本路径为$ ORACLE_HOME。 我在按要求安装Oracle Grid和Database的过程中做到了,但是要重新运行以确保。

如果我在运行root.sh之后列出了nmo和nmb二进制文件的权限,则会得到:

ls -la ./nm? -rws--x --- 1个root oinstall 34166 Apr 16 02:10 ./nmb -rws--x --- 1个root oinstall 44437 Apr 16 02:05 ./nmo

经过以下教程,我做了:猪根nmo chmod 6750 nmo猪根nmb chmmod 6750 nmb

权限如下所示:

ls -la ./nm? -rwsr-s --- 1个root oinstall 34166 Apr 16 02:10 ./nmb -rwsr-s --- 1个root oinstall 44443 Apr 16 02:05 ./nmo

以上权限取决于大多数博客所说的内容。 因此,我重新启动了EM:

emctl停止dbconsole emctl停止dbconsole

并且仍然得到错误。 我几乎要重新安装Grid and Database,因为我多次重复了该过程,备份了/ etc / oratab,删除了它并重新运行root.sh(这样它可以重新创建oratab并修复可能的错误)。

我按照文档安装了所有程序,打开了root.sh并引用了脚本,以便可以阅读它们,但没有发现可疑之处。

我的EM版本是11.2.0.3.0

我在VirtualBox下运行Oracle Linux。

再次:我已经按照99%的网站关于setuid nmo错误的建议执行了root.sh ...有任何线索或不同的过程吗?

谢谢。

===============>>#1 票数:1 已采纳

检查$ ORACLE_HOME所在的文件系统是否已使用nosuid选项安装。 如果是这样,即使SUID位置1,也将阻止任何可执行文件以root用户身份运行。

希望能有所帮助。

===============>>#2 票数:0

以root用户身份在$ ORACLE_HOME目录中执行root.sh脚本:

例如:

sh /opt/oracle/product/11g/root.sh

===============>>#3 票数:0

在root.sh旁边。 你可能会碰到我的案子。

遇到了类似的问题,发现错误来自交换空间不足。 我的交换空间很低,只有300MB,此问题“无法启动进程:无法运行程序“ / opt / OEMAgent / sbin / nmo”(在目录/ opt / OEMAgent / agent_inst / bin中)):error = 12,不是足够的空间”突然出现。

添加其他交换空间后,它会立即消失。

  ask by user3041770 translate from so

未解决问题?本站智能推荐:

1回复

setuid包装器的注意事项

我编写的Python扩展需要root访问才能执行单个硬件初始化调用。 我宁愿不以root身份运行整个脚本只是为了我的扩展中的这一个调用,所以我想编写一个包装器来执行此初始化,然后再下载到用户权限并运行实际脚本。 我打算通过sudo运行这个包装器,例如 我正在考虑类似的东西( 更新
2回复

使用setuid / setgid包装器执行Python命令

我要使用setuid / setgid位提供的权限执行以下Python脚本: 但是:我想直接从C包装器执行命令,而无需中间的Python脚本文件。 我尝试使用execve做到这一点,如下所示: 但是当我以./mycli foo bar运行编译的程序时,出现以下错误:
1回复

在setuid根程序中,如何检查当前用户(该根用户正在为此工作)拥有文件?

用例是一个挂载工具,我想限制挂载( unionfs(r+x dir, squashfs) )到调用者拥有的文件。 我知道熔丝,但是我想在内核中使用overlayfs和squashfs。
1回复

为什么我需要setuid-root C程序中的setuid(0)来调用带有system()的管理程序?

我不得不为某人做一个肮脏的Linux黑客攻击,以便他们可以使用cupsenable printername shell命令启动打印机,同时作为非root用户。 我不希望他们能够以root身份使用整个cupsenable语法,所以我只写了一个C包装器来清理argv[1]的输入并调用system(
1回复

python脚本的setuid / setgid包装器

我有一个Python脚本,希望能够作为UID 200的系统用户guybrush和GID 200的组guybrush 。 目前,我的Python脚本(位于/path/to/script.py )如下所示: 我尝试的C包装程序( scriptwrap.c )如下所示: 然后,我
1回复

Linux上Oracle 10g2上的企业管理器错误

我已经在Centos 6.5中安装了Oracle企业管理器数据库控制10g版本10.2.0.1.0的实例,尝试使用以下命令启动企业管理器代理: emctl start dbconsole 几分钟后,我说失败了。 日志把我扔了: emagent.log 2016年7月
1回复

Windows上的Oracle 10g2上的企业管理器错误

问题 企业管理器启动,然后挂起。 环境 Windows上的RAC安装,由两个节点(node1和node2)组成。 企业管理器已安装在node1上。 我们能够使dbconsole短暂运行,然后失败。 来自node1的emagent.trc显示似乎是两组相关的错误。
2回复

setuid位结果

我有一个要设置uid位的shell脚本。 我将所有者设置为root并设置uid位。 我在外壳程序中添加了“ whoami”以检查其是否正常运行,但是当我执行脚本时,whoami返回了用户名,而不是root。 那是错的吧? 如果uid设置正确,我应该已经root了,对吗?
5回复

从setuid根C程序调用脚本-脚本不能以root身份运行

我需要以root用户身份运行bash脚本(无密码的sudo或su不可行),并且由于您无法在Linux中设置脚本,因此我考虑过从可执行文件调用它并使其成为 setuid: 这可以正常运行脚本(如中所述),但是脚本以执行“ ./wrapper”的用户身份运行。 为什么? 以及如何正确
1回复

在Xfer期间发生致命错误(setuid失败)-BackupPC cygwin rsyncd

我正在尝试在Windows 2002R2服务器上实现rsyncd(通过BackupPc),该服务器上已经安装了cygwin(用于访问邮件日志)。 我通常只使用cygwin1.dll和rsyncd.exe以及配置文件(rsyncd.conf,rsyncd.lock,rsyncd.log和rsyn