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]
내 도메인 사용자 중 한 명이 명령을 실행할 때
# 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. ]
libnss_winbind.so.2
따라서 64비트 버전이 설치되어 있지만 확실하지는 않지만 runcobol
32비트 버전을 찾고 있는 것 같습니다. 그렇다면 일반 사용자는 왜 문제가 없습니까 runcobol
? 뭐, 일반 사용자의 경우에는 전혀 strace
찾지 않는 것 같습니다 . 로컬 사용자가 수행하지 않는 삼바 및 도메인 인증과 관련이 있기 libnss_winbind.so.2
때문에 이것이 의미가 있다고 생각합니다 .winbind
이 시점에서 나는 Linux에서 디버깅 경험이 많지 않기 때문에 다시 막히게 되었습니다. 제한된 추측으로 볼 때 세 가지 옵션이 있습니다.
찾고 있는
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