AIX 에서 암호를 변경하는데...
글쓴이: sauron / 작성시간: 월, 2011/03/14 - 11:04오후
UNIX 중 AIX 에서, 자동으로 사용자의 암호를 바꿀려고 합니다. 그래서 popen 을 사용하는 _PipeWrite.exe 를 만들었읍니다. 소스는 이렇습니다. #include<stdio.h> int main(int ArgCnt, char* AargVal[]) { if(ArgCnt<3) { printf("※ Need 2 Arg('Command', 'Data To Write')\n"); return 0; } FILE* VP_File =popen(AargVal[1],"w"); int VI_RetCode=0; int i =2; for(;i<ArgCnt;++i) { VI_RetCode=fprintf(VP_File,"%s\n",AargVal[i]); printf("## Write Result=%d: %s\n",VI_RetCode,AargVal[i]); } fflush(VP_File); pclose(VP_File); } 이것을 _PipeWrite.exe 이라는 실행파일로 만든 다음에, 아래 명령을 실행하였읍니다. ./_PipeWrite.exe 'passwd test1 1>my.txt' 1234 1234 원래 대로라면 사용자의 입력을 기다리지 않고, test1 의 암호가 1234 로 변경되어야 합니다. 그런데 passwd 명령을 콘솔에서 실행할 때와 같이, 자꾸 2 회 입력을 기다리고 있읍니다. 이상한 것은 저 소스는 리눅스에서는 정확하게 동작하고 있는 소스입니다. 그런데 AIX 에서는 먹혀들지 않네요. 사용되는 셸은 Korn Shell(/usr/bin/ksh) 입니다. 뭔가 이상해서 사용자의 입력을 받는 _Input.sh 를 아래처럼 만들고, #!/usr/bin/ksh echo "#### Enter Data." sleep 2 read VS_Data echo $VS_Data ./_PipeWrite.exe "_Input.sh" TestData 를 실행하면, 또 정상 동작합니다. 그러니까 사용자가 TestData 를 입력한 것처럼 동작을 한다는 것이지요. 이것은 _PipeWrite.exe 에는 이상이 없다는 뜻인데, passwd 와 관련이 있지 않나 생각합니다만, 확실히는 잘 모르겠읍니다. 혹시 UNIX 에서 이런 현상 겪으신 분들 있으시면 고견을 청합니다.
Forums:
댓글 달기