你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介│广告服务│读者反馈│编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
oracle 基础(6)
 

策略
既然您了解了每个可执行文件的作用,让我们来看看您如何能够保护数据库基础架构。 大部分策略已经在前面部分的背景信息中进行了讨论。 因此,实际上,您的策略措施是:

  1. 删除不需要的文件(例如 lsnrctl0)的所有权限。
  2. 限制仅 Oracle 软件具有可执行文件的权限。
  3. 如果 Oracle 软件所有者启动进程,删除 SUID 位。

因此,您希望更改与监听程序相关的文件的权限,如下所示:

$ chmod 700 lsnrctl tnslsnr
$ chmod 000 lsnrctl0

验证结果。

$ ls -l *lsnr*
-rwx------   1 orasoft    oinstall    214720 Oct 25 01:23 lsnrctl
----------   1 orasoft    oinstall    214720 Oct  1 18:50 lsnrctl0
-rwx------   1 orasoft    oinstall   1118816 Oct 25 01:23 tnslsnr
----------   1 orasoft    oinstall   1118816 Oct  1 18:50 tnslsnr0

结论
从本例可得出以下几个结论:

  • 更改 oracleO 可执行文件对数据库的操作没有影响。 如果曾经遇到导致“oracle”可执行文件损坏的问题,最好的做法是将“oracleO”文件重命名为“oracle”。 若如此,请确保将权限重设为 700。对 lsnrctl0 和 tnslsnrctl0 文件也是如此。
  • 如果使用 Oracle 软件所有者用户 ID 作为企业管理器操作系统凭证,更改 emtgtctl2 权限将没有任何影响。 如果使用其他用户 ID(例如,不是 orasoft),则必须将 SUID 重设为原来的值,权限必须设为与原来一样。
  • 可执行文件 dbnsmp 由 Oracle Enterprise Manager Intelligent Agent 使用,但是仅延续到 Oracle9i 数据库第 2 版。此外,如果您使用 Oracle 软件所有者作为操作系统凭证,更改权限没有任何影响。 如果您使用其他用户 ID,则必须将权限重设为原来的值。
操作计划
  1. 将 oracleO、tnslsnr0 和 lsnrctl0 的权限更改为 0000。
  2. 将 tnslsnr 和 lsnrctl 的权限更改为 0700。
  3. 您在企业管理器中是否使用外部作业?
    IF 没有 THEN 将 extjob 的权限更改为 0000
    ELSE
      将 extjob 的权限更改为 0700 并将所有者和组更改为 orasoft 和 oinstall(或任何 Oracle 软件所有者的用户和组)。
    END IF
  4.  
    IF 您运行在 Oracle9i 数据库上 THEN
      您是否使用 Oracle Intelligent Agent?
    IF 没有 THEN
      将 dbsnmp 的所有权更改为 orasoft
    将权限更改为 0700
    ELSE
      无需任何更改
    END IF


1.4 使用 umask

背景
正如所知,您可以使用 chmod 命令更改 *nix 中的权限。 但是,由于 chmod 仅在现有文件上工作,您如何确保以后创建的文件具有相同的权限?

为了说明这一点,假设您希望目录中的所有文件都具有权限 r--r--r--(或 444)。 通过发出以下命令很容易做到这一点:

$ chmod 444 *

现在在目录上创建一个没有内容的简单文件,查看它的权限。

$ touch a_file.txt
$ ls -l a_file.txt
-rw-r--r--   1 orasoft    dba        0 Oct 21 13:44 a_file.txt

对于所有者,权限设置为读写,对于组设置为读,对于其他用户设置为读(或者 644),而不是您预期的 444。为什么?

在新创建的文件上设置的确切权限由一个名为 umask 的特殊参数指定。 umask 是一个值集,从所有权限中减去该值集可以得到新文件的权限值。 例如,如果将 umask 设置为 777,从整体权限值 777 中减去该值,得到 000,即新文件没有任何权限。让我们来看一个示例:

$ umask 777
$ touch b_file.txt
$ ls -l ?_file.txt
-rw-r--r--   1 oracrmp    dba              0 Oct 21 13:44 a_file.txt
----------   1 oracrmp    dba              0 Oct 21 13:53 b_file.txt

请注意,文件 b_file.txt 的权限为 000 或 ---------。 此外,请注意,先前创建的文件 a_file.txt 仍然被设置为原来的权限。 将 umask 设置为 777 得到新文件的权限。

umask 是为 Oracle 将创建的不同文件设置权限的强大有效的方法。

策略
Oracle 软件所有者的整体 umask 为 022,因此文件所有者的权限为读写,所有其他用户的权限为读。 您可以将该内容放到用户的登录配置文件中,以便它随时生效。

Oracle 使用的文件有很多不同类型,数据文件、重做日志文件、跟踪文件等等。 数据文件可以预先知道,您可以轻松更改它们的权限,但是跟踪文件是在运行时生成的。 因此,您应该使用 umask 来确保这些跟踪文件没有暴露给任何外部用户,因为这些文件包含可能被黑客利用的各种机密信息。 例如,理论上,某人可以通过复制跟踪文件来窃取数据文件,并将其安装在单独的服务器上,调出数据库以窃取其内容。

为目录设置 umask,如下所示:

目录

说明

umask

初始化参数 background_dump_dest 指定的目录

某些跟踪文件和数据库警报文件都在此处生成。 权限应为 rw-------(仅 Oracle 软件所有者具有读写权限)。

0177

初始化参数 user_dump_dest 指定的目录

跟踪文件在此处生成。 权限应与上面相同。

0177

$ORACLE_HOME/rdbms/log

某些数据库日志文件在此处生成。 权限应与上面相同。

0177

$ORACLE_HOME/rdbms/audit

默认情况下,数据库审计的审计跟踪存储在此处,除非您已经设置了 audit_file_dest 初始化参数。 权限应与上面相同。 即使您有 DB 审计跟踪,某些通用事件(例如 SYSDBA 连接和数据库启动/关闭)始终在此处审计和放置。

0177

初始化参数 audit_file_dest 指定的目录

默认情况下,数据库审计的审计跟踪存储在此处,除非您已经设置了 audit_file_dest 初始化参数。 权限应与上面相同。

0177

结论
以这种方式设置 umask 可以防止某些开发人员访问会话跟踪文件,这些文件在 user_dump_dest 目录中生成并被传递到 tkprof 进行格式化。 因此,您可能希望仅在该目录上放松规则。

(编辑;aniston)

  推荐精品文章

·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