温馨提示×

Informix在Linux上的权限设置指南

小樊
45
2025-12-08 23:45:00
栏目: 智能运维

Linux 上 Informix 权限设置指南

一 系统前置准备与目录权限

  • 创建专用系统账号与组,仅用于运行引擎与维护:
    • groupadd informix
    • useradd -g informix -d /opt/informix -m informix
    • passwd informix
  • 安装目录与关键子目录的所有权与权限(最小化授权):
    • chown -R informix:informix /opt/informix
    • chmod -R 755 /opt/informix
    • chmod 770 /opt/informix/tmp(引擎需要在该目录创建临时文件)
  • 初始化数据设备文件(rootdbs 等)权限必须为 660,否则初始化/启动会失败:
    • mkdir -p /opt/informix/data
    • touch /opt/informix/data/rootdbs
    • chmod 660 /opt/informix/data/rootdbs
    • chown informix:informix /opt/informix/data/rootdbs
  • 环境变量建议写入 ~informix/.bash_profile(或对应的 shell 配置):
    • export INFORMIXDIR=/opt/informix
    • export ONCONFIG=onconfig.<实例名>
    • export INFORMIXSERVER=<实例名>
    • export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
    • export PATH=$INFORMIXDIR/bin:$PATH
    • 使配置生效:source ~/.bash_profile
  • 启动/停止引擎(仅以 informix 用户执行):
    • 启动:oninit -vy
    • 停止:onmode -ky 以上步骤覆盖了目录所有权、关键权限位与初始化文件权限,能避免常见的“目录不受信任”“tmp 过严”“rootdbs 权限错误”等启动失败。

二 数据库对象与账户权限

  • 以数据库管理员账户(如 informix)连接数据库后,使用标准 SQL 完成授权:
    • 创建用户:CREATE USER username IDENTIFIED BY ‘password’;
    • 授予数据库级权限:GRANT ALL PRIVILEGES ON DATABASE dbname TO username;
    • 授予表级权限:GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE schemaname.tablename TO username;
    • 角色与授权:CREATE ROLE rolename; GRANT ALL PRIVILEGES ON DATABASE dbname TO rolename; GRANT rolename TO username;
    • 撤销权限:REVOKE ALL PRIVILEGES ON DATABASE dbname FROM username; 或按表/列撤销。
    • 密码管理:使用 onspassword 工具(如 onspassword -u username -p newpass)进行口令变更。
  • 建议采用“最小权限 + 角色”模型,将常用权限打包为角色后授予用户,便于审计与回收。

三 系统资源与文件描述符限制

  • 为避免“文件描述符不足”“共享内存创建失败”等,提升 informix 用户的资源上限:
    • 编辑 /etc/security/limits.conf
      • informix soft nofile 65536
      • informix hard nofile 65536
      • informix soft nproc 65536
      • informix hard nproc 65536
    • 确保 PAM 启用 limits:在 /etc/pam.d/system-auth 与(如存在)/etc/pam.d/password-auth 中加入 session required pam_limits.so
    • 验证与生效:
      • 切换到 informix:su - informix
      • 执行:ulimit -n(应返回 65536 或更高)
      • 重启引擎或系统以持久生效
  • 如仍遇到共享内存/资源问题,需结合实例配置(如共享内存相关参数)与系统内核参数一并核查。

四 常见权限报错与修复对照

报错或现象 根因 修复要点
启动报 “permissions 0777 include public write access” 目录/文件被设置为全局可写,存在安全风险 将相关目录改为 755,关键文件/设备文件为 660,仅属主与属组可写
“/opt/informix (path is not trusted)” 目录权限/属性导致引擎不信任 确认 /opt/informix 属主为 informix:informix,权限 755,必要时检查上级目录信任链
“directory /opt/informix/tmp is too secure (has mode 755, needs 770)” tmp 目录权限不足 chmod 770 /opt/informix/tmp
“Fatal error in shared memory creation” 或 “The number of file descriptors is limited by your shell” 文件描述符/共享内存不足 在 limits.conf 提升 nofile/nproc,PAM 启用 limits,ulimit -n 验证,再重启引擎
初始化/创建 dbspace 失败 rootdbs 等设备文件权限不对 确保 rootdbs 权限为 660,属主 informix:informix
以上报错与修复措施覆盖了安装与初始化阶段的高频权限问题,可据此快速定位并解决。

五 安全加固要点

  • 账户与登录安全:
    • 禁用不必要的超级账户,删除无用账号;强化口令策略(长度≥10,包含大小写字母、数字与特殊字符);必要时用 chattr +i 保护 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow;设置 TMOUT 自动注销;限制 su 使用范围。
  • 网络安全:
    • 通过 firewalld/iptables 仅开放必要端口(如 9088/9089 等),关闭未使用端口与服务。
  • 数据加密与访问控制:
    • 启用 TDE(透明数据加密) 保护数据/日志/备份在存储层加密;按需使用列级加密;结合 RBAC/LBAC 实现细粒度访问控制。
  • 日志与审计:
    • 启用并定期检查数据库与系统日志;使用 auditd 等工具审计关键文件与目录的访问与变更。 以上措施能显著提升 Informix 在 Linux 上的整体安全态势。

0