你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / 数据库开发
oracle基础(6)
 
1.3 保护其他可执行文件

背景
看看 $ORACLE_HOME/bin 目录中的其他可执行文件;有些看起来很熟悉,例如 sqlplus 或 lsnrctl(启动监听程序的实用工具);有些您可能并不熟悉。

其中一些文件(例如监听程序进程运行的实用工具 tnslsnr 或在 Oracle Intelligent Agent 中使用的 dbsnmp)最终用户不会直接接触到。 要正确保护这些文件,您必须了解它们的作用,从而采取相应的措施。

请记住,如果为文件设置了 SUID 位,则无论哪个用户运行该文件,该文件都在所有者的权限下运行,而不是在执行者的权限下运行。 您还应清楚,设置 SUID 是一种危险行为,不应给予鼓励。

还有一些文件将 SUID 设置为 on。 让我们将它们找出来。

$ cd $ORACLE_HOME
$ find . -type f \( -perm -2000 -o -perm -4000 \) -exec ls -l {} \; 

在 Oracle 数据库 10g 第 1 版和更高版本中,上述命令应仅返回以下可执行文件:

-rwsr-s--x    1 orasoft  dba      93300507 Jul 22 11:20 ./bin/oracleO
-r-sr-s---    1 root     dba             0 Jul  1 23:15 ./bin/oradism
-rwsr-s--x    1 orasoft  dba         94492 Jul 22 11:22 ./bin/emtgtctl2
-rwsr-s---    1 root     dba         18944 Jul 22 11:22 ./bin/nmb
-rwsr-s---    1 root     dba         20110 Jul 22 11:22 ./bin/nmo
-r-sr-sr-x    1 nobody   nobody      58302 Jul 22 11:23 ./bin/extjob

我们来看看这些文件是哪些:

程序

说明

./bin/oracleO

该文件是可执行文件“oracle”的副本。 当您使用重新链接命令重新编译 oracle 可执行文件时,旧版本将另存为 oracle0。 这是一个潜在的安全隐患;大多数 DBA 的忽略使其可能成为黑客的入侵途径。 因此,您应该采取措施删除这些权限。 最好的方法是让其没有任何权限:

$ chmod 0000 oracleO

现在,如果您查看权限:

$ ls -l oracleO
---------- 1 orasoft oinstall 248823320 Sep 15 13:27 oracleO

./bin/oradism

用于动态隐私共享内存。 可以在您的平台上使用。 并不是在所有情况下都出现。 如果出现,保持原样。

./bin/emtgtctl2

用于 Enterprise Manager Agent。 无需使用 SUID 设置它。 原因和“oracle”可执行文件一样。 删除权限。

$ chmod 0700 emtgtctl2

./bin/nmb

Oracle 10g 网格控制代理用其来收集目标服务器上的统计信息。 保持原样。

./bin/nmo

Oracle 10g 网格控制代理用其来收集目标服务器上的统计信息。 保持原样。

./bin/extjob

这是 EXTJOB(外部作业,可用来从企业管理器内部执行基于 OS 的程序)的可执行文件。 您应当给予注意。 您是否经常使用外部作业? 如果不是,那么您甚至不应该保留该可执行文件。 在这种情况下,您可以将其保留在目录中,但要更改权限和所有权关系。 所有者可以是 Oracle 软件所有者(本例为 orasoft),权限应该为 rwx------

$ chown orasoft:oinstall extjob
$ chmod 0700 extjob

可能还会存在另一个程序 extjobO,它是同一程序的先前编译。 该程序的权限也要改。

$ chown orasoft:oinstall extjobO
$ chmod 0000 extjobO

在 Oracle9i 数据库第 2 版中,您将发现另一个文件 ./bin/dbsnmp,它是 Oracle Intelligent Agent 可执行文件。 权限的设置如下:

-rwsr-s--- 1 root dba 2986836 Jan 26 2005 dbsnmp

该文件的问题是它需要 root 权限才能正常工作,因此必须将 SUID 位设置为 on。 但是,由于该文件的所有者是 root,因此黑客通常利用它以 root 身份获得访问。 最好的方法是消除它,或者将其所有者改为 Oracle 软件所有者,将权限设置为 700。您将失去一些功能,但是为了消除风险,这是值得的。

另一个要考虑的可执行文件是 tnslsnr,它是 Oracle 网络监听程序。 有两个可执行文件:

tnslsnr - 实际的监听程序可执行文件
lsnrctl - 用于管理监听程序(例如启动、停止等)的实用工具。

(编辑:anna sui)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089