温馨提示×

debian lsnrctl权限怎么给

小樊
37
2026-09-18 18:37:54
栏目: 智能运维

在 Debian 上,lsnrctlOracle Database 的监听管理工具,通常位于 $ORACLE_HOME/bin/lsnrctl
“给权限”一般分 两种情况,下面分别说明。


一、给执行权限(最常见)

如果提示:

bash: lsnrctl: command not found

Permission denied

1. 使用 oracle 用户

Oracle 官方要求 必须用 oracle 用户运行

su - oracle

然后执行:

lsnrctl status

2. 给 lsnrctl 执行权限(如果需要)

chmod 750 $ORACLE_HOME/bin/lsnrctl

或(root 下):

chown oracle:oinstall $ORACLE_HOME/bin/lsnrctl
chmod 750 $ORACLE_HOME/bin/lsnrctl

正常安装后已经有权限,不要随便 chmod 777


二、给普通用户使用 lsnrctl 的权限

方法 1:加入 oracle / dba 组(推荐)

usermod -aG dba,oinstall username

然后该用户执行:

su - oracle
lsnrctl start

方法 2:sudo 授权(安全方式)

编辑 sudo:

visudo

添加:

username ALL=(oracle) NOPASSWD: /u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl

使用:

sudo -u oracle lsnrctl status

三、监听端口权限(1024 以下)

如果监听端口是 1521(<1024)

  • 必须用 root 或 oracle
  • 普通用户无法 bind

✅ 正确方式:

su - oracle
lsnrctl start

四、常见错误排查

lsnrctl: command not found

→ 没设置环境变量

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
TNS-01150: The listener reported an unexpected error

→ 权限或端口问题


总结(推荐做法)

用 oracle 用户
不要 777
普通用户用 sudo 或加 dba 组

如果你能贴出 具体报错信息,我可以直接帮你定位。

0