
CentOS 6.5システム(VM)で実行されるRM / COBOLランタイム - バージョン7.10.00があります。
このCentOSは、ローカルドメインコントローラを使用して特定のドメインユーザーグループを認証し、SSHアクセスを許可します。これらのユーザーは/ home / domainname / usernameに自動的に作成されたホームディレクトリを持ち、通常のローカルユーザーは/ home / usernameにあります。
関連する Cobol ファイルは次の場所にあるようです。
/usr/bin/runcobol
<- ファイル
/usr/bin/rmcobolso
<- 以下に基づくディレクトリls -a
とにかく、ここに私の基本的な質問があります。一般ユーザーがコマンドを実行すると
# runcobol
...コマンドが有効であることを確認する基本的な検査だけです。
回答者は次のとおりです。
RM/COBOL Runtime - Version 7.10.00 for Linux (Intel).
Configured for 50 users.
Copyright (c) 1985, 1986-2000 by Liant Software Corp. All rights reserved.
Registration Number: 7H-1054-00367-0050
Usage: RUNCOBOL name [options]
Options: [A=arguments] [B=buffersize] [C=configfile] [D] [I] [K]
[L=libname] [M] [S=switches] [T=sortsize] [V] [X=configmod]
私のドメインユーザーの1人がコマンドを実行したとき
# runcobol
彼/彼女は次の答えを受け取ります:
Segmentation fault
この問題の原因は何ですか?
編集1:
strace runcobol
ドメインユーザーから。最後の数行は次のとおりです。
open("/usr/lib/libnss_winbind.so.2", O_RDONLY) = -1 ENOENT (No such file or direc
stat64("/usr/lib", {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0
munmap(0xf76fa000, 48317) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
これは最後の数行にすぎません。最初の20行はすべてlibnss_winbind.so.2
私のサーバー上にあるこのファイルを探しているようです/usr/lib64/libnss_winbind.so.2
(例えば、CentOS 6.5 64ビットを実行しています)。最初の行から始めるstrace runcobol
[test.user.co@co1tu-sv-conta bin]$ strace runcobol
execve("/usr/bin/runcobol", ["runcobol"], [/* 26 vars */]) = 0
[ Process PID=14369 runs in 32 bit mode. ]
だから私は64ビットバージョンがインストールされていると思いlibnss_winbind.so.2
ますが(わかりません)、runcobol
32ビットバージョンを探しています。それでは、一般ユーザーにはなぜ問題がありませんかruncobol
?まあ、一般ユーザーのstrace
場合、検索がまったくないようですlibnss_winbind.so.2
。winbind
ローカルユーザーは、実行していないSambaおよびドメイン認証に関連しているため、これは意味があると思います。
この時点で、私はLinuxデバッグの経験があまりないので、再び詰まっています。限られた推測によると、3つのオプションがあります。
探している場所の1つに
libnss_winbind.so.2
32ビットバージョンを見つけてインストールします。runcobol
64ビットCentOS 6.5にどのパッケージをインストールするのかわかりません。runcobol
見ずに走るlibnss_winbind.so.2
。ユーザーがすでに認証されていてCentOSシステムにいるので、なぜこれがうまくいくのかわかりません。認証後にドメインリソースを使用しないため、必ずしも必要な手順ではないようです。libnss_winbind.so.2
これは赤ニシンであり、分割エラーとは関係ありません。
編集2
gdb runcobol
当時の結果は次のとおりですrun
。
ローカルユーザーから
Reading symbols from /usr/bin/runcobol...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/runcobol
RM/COBOL Runtime - Version 7.10.00 for Linux (Intel).
Configured for 50 users.
Copyright (c) 1985, 1986-2000 by Liant Software Corp. All rights reserved.
Registration Number: 7H-1054-00367-0050
Usage: RUNCOBOL name [options]
Options: [A=arguments] [B=buffersize] [C=configfile] [D] [I] [K]
[L=libname] [M] [S=switches] [T=sortsize] [V] [X=configmod]
Program exited with code 0373.
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6_5.4.i686
ドメインユーザーから
Reading symbols from /usr/bin/runcobol...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/runcobol
Program received signal SIGSEGV, Segmentation fault.
0x0805cc37 in OSINITIALIZE ()
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6_5.4.i686