我们来看看这些文件是哪些:
程序 |
说明 |
./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 - 用于管理监听程序(例如启动、停止等)的实用工具。
如果您查看权限: $ ls -l *lsnr*
-rwxr-x--x 1 orasoft oinstall 214720 Oct 25 01:23 lsnrctl
-rwxr-xr-x 1 orasoft oinstall 214720 Oct 1 18:50 lsnrctl0
-rwxr-x--x 1 orasoft oinstall 1118816 Oct 25 01:23 tnslsnr
-rwxr-xr-x 1 orasoft oinstall 1118816 Oct 1 18:50 tnslsnr0
这些文件全都具有执行权限。 与可执行文件 oracleO 一样,通过重新链接 Oracle 软件创建新文件 tnslsnr 时,已有的文件被重命名为 tnslsnr0。 这样做是因为,如果需要回退该进程,可以将旧的可执行文件复制到新的可执行文件上。 因为是旧的可执行文件的副本,因此文件 tnslsnr0 可能包含原来的 tnslsnr 的功能。 lsnrctl0 也是一样。
(编辑:aniston)
|