你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / 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. oracleOtnslsnr0lsnrctl0 的权限更改为 0000。
  2. tnslsnrlsnrctl 的权限更改为 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