shall script로 하는일을 java 로 대체하고자 합니다.
글쓴이: huemoi / 작성시간: 수, 2006/12/13 - 1:03오후
고객사 리눅스 서버에 어떤 작업을 위하여 script를 작성하여
cron에 걸어놓으려고 하다가 보안 문제에 봉착했습니다.
고객사 관리자는 root 권한을 갖고 있어 script를 볼 수있는
상황인데, 보안상 root유저도 script file을 보거나 수정 할 수
없어야 합니다.
그래서 생각한것이 이전에 shall script로 작성된 것을 모두
java로 옮기는것 인데, 가능할지 막막 합니다.
기존 oracle db shutdown 이나 기타 작업들을 모두 java로
command progrem을 작성하여 매일 규칙적으로 cron으로
실행하여야 합니다.
java로 작성된 command progrem 예제나 경험 있으신 분들의
조언을 구합니다.(자바에 잼병이라..ㅠㅠ)
아래는 웹에서 검색하다 나온 jsp 소스인데, 간단하게
ls 명령어를 실행하고 결과를 받아 출력해오는 소스네요.
<%@ page language="java" import= "java.io.*, java.util.*" contentType="text/html;charset=EUC-KR" session="false" %> <html> <% String command = "ls -al"; // <---- 실행할 쉘명령어 int lineCount = 0; String line=""; Runtime rt = Runtime.getRuntime(); Process ps = null; try{ ps = rt.exec(command); BufferedReader br = new BufferedReader( new InputStreamReader( new SequenceInputStream(ps.getInputStream(), ps.getErrorStream()))); while((line = br.readLine()) != null){ %> <%=line%><br> <!-- 결과 화면에 뿌리기... --> <% } br.close(); }catch(IOException ie){ ie.printStackTrace(); }catch(Exception e){ e.printStackTrace(); } %> </html>
Forums:
> 고객사 관리자는
> 고객사 관리자는 root 권한을 갖고 있어 script를 볼 수있는
> 상황인데, 보안상 root유저도 script file을 보거나 수정 할 수
> 없어야 합니다.
좀 이해가 안되는 상황인데, shell 스크립트에 무슨 비밀번호같은 중요한 정보가 필요한 것인가요?
간단한 쉘로 될 상황을 자바로 돌린다는게 좀... 삽으로 될 것을 불도저로 하는 것 같습니다만...
중요한 부분을 그냥 C/C++등으로 짜버리는게 쉽지 않을까요..
그게 좀 답답합니다.
제가 프로그램적 지식이 거의 없어 조금 볼 줄 아는 java로
작성하려고 하는겁니다.^^;;
스크립트에는 비밀번호가 들어갑니다.
비번은 어떤 식으로
비번은 어떤 식으로 인자로 들어가서 호출하게 되는건가요? 좀 더 자세한 내용을 올려주신다면 다른 분들이 도움주실 것 같습니다만..
그다지 관련 없는 내용이지만 이런게 생각나네요.. 업체에서 만든 프로그램중에 황당한 일을 경험한 적이 있는데,, 루트 비번을 바꿨더니 명령이 제대로 동작 안해서, 스크립트를 살펴보니... (예전의) 루트 비번이 스크립트에 하드코딩 되어있었던...
해봐야
해봐야 소용없습니다.
strings 커맨드로 찻아보면 나옵니다.. 저정도는..
내부에 약간 암호화 해서 저장해두면 모를까..
-------------------------------------------------------------------------------------------------------
Life ... http://iz4u.net/blog/
------------------------------------------------------------------------------------------------
Life is in 다즐링
으윽.
보안을 요하는 타겟이 그다지 스킬이 높지 않으니
자바로 작성하여 컴파일 해놓으면 괜찮을것 같기는 합니다..
혹 간단하게 스크립트를 암호화 하거나 볼 수 없게
하는 방법은 없을까요.ㅠㅠ
물론, 상대방이 root 권한이 있다는 가정하에 말입니다.
strings만을 회피하는
strings만을 회피하는 방법이야 여러가지 있겠지요...
아..그런데.. 다졸링님.
지난번에 저희 회사와 살짝 거래 하셨던 분 같은데..
그룹웨어라 하면 아실라나..^^;;
구글에서 shell script
구글에서 shell script compiler로 검색해보면 본 쉘 스크립트를 컴파일 가능한 C 소스로 바꿔주는 툴들의 소개가 보이네요.
--
마잇
--
마잇
다른건 다른 분들이 답해주셨고...
정 java로 하는 걸 원하시면 여기 답변에 나온 것 처럼 스크립트를 통째로 자바 코드 안에 우겨넣을 수도 있습니다.
다른 스크립트 언어에 능하시면 jython이나 jruby로 작성 후 자바 바이트코드로 컴파일 할 수도 있지요.
웹에서 Telnet 접속하여 command 실행하기
다음을 참고하세요.
원하는 내용인지는 잘 모르겠어요.
http://www.informit.com/guides/content.asp?g=java&seqNum=40&rl=1
java 는 이미 거의
java 는 이미 거의 완벽한 Decompiler 가 있으므로 무용 지물이겠군요.
마잇님이 말씀하신것과 같이 C 언어로 변환하여 컴파일하는 것이 최상일 것 같습니다.
감사합니다.^^
정말 너무 감사 드립니다.
이렇게들 답변을 달아주시다니.
댓글 달기