找回密码
 立即注册
首页 业界区 安全 [INS-35180] Unable to check for available memory

[INS-35180] Unable to check for available memory

嗳歉楞 昨天 21:22
Linux平台安装Oracle 19c的时候遇到了下面错误“[INS-35180] Unable to check for available memory”,如图所示:
1.png
具体的错误信息如下所示:
  1. Additional Information:
  2. Exception details  - PRVG-1901 : failed to setup CVU remote execution framework directory "/tmp/InstallActions2024-09-20_09-18-46AM/CVU_19.0.0.0.0_oracle/" on nodes "orapreftest"
  3. Please select a different work area for the framework
  4. orapreftest : /bin/sh: /tmp/InstallActions2024-09-20_09-18-46AM/CVU_19.0.0.0.0_oracle//exectask.sh: Permission denied
  5. orapreftest : /bin/sh: /tmp/InstallActions2024-09-20_09-18-46AM/CVU_19.0.0.0.0_oracle//exectask.sh: Permission denied

  6. Version of exectask could not be retrieved from node "orapreftest"
复制代码
其实遇到这个错误的原因有多种,当前这个案例中,明显是因为没有/tmp目录下相关脚本的执行权限。排查下来,发现是因为安全规范设置,系统管理员在rc.local中对/tmp目录进行了限制,如下所示:
  1. # cat /etc/rc.local
  2. #!/bin/bash
  3. # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
  4. #
  5. # It is highly advisable to create own systemd services or udev rules
  6. # to run scripts during boot instead of using this file.
  7. #
  8. # In contrast to previous versions due to parallel execution during boot
  9. # this script will NOT be run after all other services.
  10. #
  11. # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
  12. # that this script will be executed during boot.

  13. touch /var/lock/subsys/local

  14. mount -o remount,nodev,nosuid,noexec /tmp
  15. mount -o remount,nodev,nosuid,noexec /var
  16. mount -o remount,nodev /home
  17. mount -o remount,nodev,nosuid,noexec /dev/shm


  18. su  oracle -lc "/opt/oracle19c/product/19.3.0/db_1/bin/lsnrctl start"
  19. su  oracle -lc  /opt/oracle19c/product/19.3.0/db_1/bin/dbstart
  20. bash /home/oracle/dba_scripts/db_auto_start.sh 2>>&1 /home/oracle/dba_scripts/logs/db_auto_start.log
复制代码
在分析介绍具体的命令前,我们先了解一下rc.local文件,其实/etc/rc.local是一个在Linux系统中用于在系统启动时执行特定脚本或命令的文件。这个文件通常在系统启动的早期阶段被执行,它允许管理员定义一些在系统启动过程中需要自动执行的任务。以下是一些 /etc/rc.local 文件可能包含的内容:

  • 执行脚本:可以调用其他脚本或程序,以执行特定的系统初始化任务。
  • 设置环境变量:在系统启动时设置环境变量。
  • 挂载文件系统:在系统启动时挂载特定的文件系统。
  • 启动服务:启动一些需要在系统启动时自动运行的服务。
  • 配置网络:设置网络接口或执行网络相关的配置。
/etc/rc.local 文件通常在系统启动时由 /etc/rc.d 目录下的脚本调用。需要注意的是,随着系统管理工具和系统初始化方式的演进,/etc/rc.local的使用已经变得越来越少。在一些现代的 Linux 发行版中,/etc/rc.local 可能不再被默认使用,因为系统可能采用了更先进的启动管理系统,如 systemd。
mount -o remount,nodev,nosuid,noexec /tmp 这个命令的具体作用为:

  • mount:这是用于挂载文件系统的命令。
  • -o remount:这个选项告诉mount命令不要卸载已经挂载的文件系统,而是重新挂载它,并应用新的挂载选项。
  • nodev:这个选项防止在/tmp目录下创建设备文件。这有助于防止恶意用户或程序通过设备文件访问系统资源。
  • nosuid:这个选项防止/tmp目录下的文件被赋予SUID(Set User ID)或SGID(Set Group ID)权限。SUID和SGID权限允许用户以文件所有者的身份执行文件,这可能会带来安全风险。
  • noexec:这个选项防止在/tmp目录下执行任何二进制可执行文件。这有助于防止恶意软件通过/tmp目录执行。
  • /tmp:这是要重新挂载的目录的路径。
正是这个条命令,导致Oracle 19c在安装过程中,执行tmp目录下面的shell脚本受限从而导致安装失败报错,如上所示。我们只需运行下面命令重新挂载一下/tmp目录,让其有执行权限即可。
  1. # mount -o remount /tmp
复制代码
安装完成后,在执行下面命令,让其满足符合安全规范
  1. mount -o remount,nodev,nosuid,noexec /tmp
复制代码
扫描上面二维码关注我如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册