[완료] [질문] (Script) bash, expect 내의 계정정보를 숨기고 싶습니다. (바이너리화)

자일자일의 이미지

안녕하세요.

그간 무의미하게 반복적으로 처리하는 작업이 많았습니다.
그러던중 이번에 의욕적으로 expect를 이용한 스크립트를 작성하여
시스템간 자동화 처리될 수 있도록 구성하였습니다.

완성 후, 테스트해보니 정상적으로 잘 처리되는 것까지 확인을 했는데요.
문제는, 해당 스크립트내에 다른 서버의 계정정보가 다수 포함되어 있습니다.

bash 쉘이나 Windows batch file의 경우 바이너리 파일로 변환시켜주는 프로그램을
이용하면 이러한 문제를 처리할 수 있었는데 expect 스크립트의 경우에는 바이너리파일로
변환시켜주는 기능을 하는 툴이 없는것 같네요.

그래서....
bash 쉘에서 "expect -c"를 이용하여 스크립트 작성 후 바이너리 파일로 변환시키려고
했는데 expect 스크립트에서는 작동하는 내용이 expect -c 로 실행시에 문제되는게
있어서 그것도 실패했습니다.

(## 아래 expect 로 작성한 스크립트는 정상 작동하는데
bash스크립트는 #expect: invalid option -- h
usage: expect [-div] [-c cmds] [[-f] cmdfile] [args] 오류로 멈추네요
df -h 대신에 df 로 바꿔서 실행하면 잘 되고요
df \-h 로 해도 안되네요.)

#!/usr/bin/expect
 
spawn ssh 192.168.0.81
sleep 0.5
send "1234\n"
expect -re "root"
sleep 0.5
send "df -h\n"
 
interact

#!/bin/bash
 
HOST=192.168.0.81
 
expect -c "spawn ssh $HOST" \
-c "expect -re password" \
-c "send 1234\n" \
-c "expect -re root" \
-c "send "df -h\R"" \
-c "interact"

이런 문제(보안)을 해결할 수 있는 방법이 없을까요 ?

perl등의 다른 언어로 따로 작성하는 방법외에 혹시 다른 좋은 방법이 있으면
도움 부탁드려요.

감사합니다.

참고한 문서
expect로 만든 스크립트에서 변수 값을 읽어 들이려면? | KLDP
(http://kldp.org/node/3966)
expect 스크립트를 바이너리화 할 수 있나요? | KLDP
(http://kldp.org/node/49961)

bacon의 이미지

-c "send "df -h\R"" 는 -c send df -hR이므로
원하는걸 하실려면 -c "send \"df -hR\""
이스케이핑이 귀찮으시면 -c 'send "df -hR"'

자일자일의 이미지

이스케이프 문자를 따옴표 앞에 붙여 볼 생각을 못했네요^^

감사합니다.

xylosper의 이미지

질문 내용에 대한 답변은 아닙니다만, 단순히 바이너리로 만든다고해서 정보를 숨길수 있는건 아닙니다.
문자열이 그대로 박혀있는 경우, strings로 한번 찍어보면 바로 나옵니다.
문제는 바이너리냐 스크립트냐가 아니라, 정보를 암호화했느냐 안했느냐입니다.

자일자일의 이미지

변환 후 Strings 등을 통해서 확인하도록 해야겠네요.
감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.