2012-05-08 173 views
0

rootユーザーとしてOracle Listnerを起動します。私はOracleユーザーとしてリスナーを開始することができます。 しかし、rootユーザーではありません。 rootユーザーとしてステータスを停止して確認できます。私は、rootとしてリスナーを起動するとrootユーザーとしてOracleリスナーを起動できません

それはメッセージを次与える: -

# lsnrctl start 

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 08-MAY-2012 15:08:11 

Copyright (c) 1991, 2005, Oracle. All rights reserved. 

Starting /opt/oracle/102/bin/tnslsnr: please wait... 

/opt/oracle/102/bin/tnslsnr: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory 
TNS-12547: TNS:lost contact 
TNS-12560: TNS:protocol adapter error 
    TNS-00517: Lost contact 
    Linux Error: 32: Broken pipe 

rootユーザーとしてリスナーを起動するために私を助けてください。

+2

ただしないでください。 oracleユーザーとして起動します。 – Mat

+0

が必要です。私はrootとして起動したい。実行時にoracleユーザーを持つことができるようにするための代替手段があります。 – Anjali

+1

この要件はどこから来ていますか?その背後にある理由は何ですか? – Mat

答えて

2

Oracleをrootユーザーとして実行しないでください。セキュリティ上のリスクがあります。 rootユーザーとしてrdbmsおよび/またはリスナーを実行する理由は一つもありません。インストールを完全に混乱させない限り、ルートとしても実行できません。

リスナーをrootユーザーとして実行する必要がある場合は、環境変数が正しいことを確認してください。

Linux用
# export ORACLE_HOME=/opt/oracle/102 
    # export PATH=$PATH:$ORACLE_HOME/bin 

    # cd $ORACLE_HOME/bin 
    # chmod u+s lsnrctl 
    # lsnrctl start 

LSNRCTL:あなたのケースではバージョン10.2.0.5.0 - 生産の09-MAY-2012午後08時51分07秒

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Starting /data/oracle/base/product/se_10205_s/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.5.0 - Production System parameter file is /data/oracle/base/admin/network/listener.ora Log messages written to /data/oracle/base/product/se_10205_s/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.5.0 - Production Start Date
09-MAY-2012 20:51:09 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/oracle/base/admin/network/listener.ora Listener Log File /data/oracle/base/product/se_10205_s/network/log/listener.log Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))) The listener supports no services The command completed successfully

# lsnrctl stop 

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 09-MAY-2012 20:52:16

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) TNS-01190: The user is not authorized to execute the requested listener command

ないでくださいこれを行う;もしあなたが間違いを犯すならば。 root以外のdba​​グループのメンバーである他のユーザーを選択します。

ところで:

Started with pid=5215 Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) TNS-12555: TNS:permission denied TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation Linux Error: 1: Operation not permitted

問題だった - 明らかに - /var/tmp/.oracle/sLISTENERは、ルートが所有していたこと:この小さなデモの後、私は少し問題を解決しなければなりませんでした。正しいユーザーにちょっとしたチャンスがあった。

+0

助けてくれてありがとう...私はこれを理解した。私はリスナーを始めるためのスクリプトが1つあることを知りたい。そのスクリプトはroot権限を持っています。パーミッションをoracleに変更すると、リスナーが正常に起動します。それ以外の場合は失敗します。もし私がそのスクリプトにsuidを与えたら、それはうまくいくでしょうか? ex - chmod u + s abc.sh – Anjali

+0

いいえ、スクリプト上のsetuidは無視されます。 Setuidはバイナリでしか動作しません。 oracleにsuを実行する$ ORACLE_HOME/binより前のルートPATHにあるlsnrctlスクリプトを使用できます。 –

関連する問題