linux/admin

[리눅스] 쉘스크립트 바이너리화 && 사용기한 설정하기

alignG 2009. 7. 31. 12:09
쉘스크립트의 내용을 보여주면 안되는 경우가 종종있을것이다 일반사용자에게 스크립트를 실행시킬수 있도록하는데 내용이 알려지면 안된다던지. 이런 경우 말이다 그럴경우에는 스크립트를 컴파일해주는 유용한 shc(Generic shell script compiler)라는 유틸리티가 있다 먼져 shc를 설치해보자

$ sudo apt-get install shc


그리고 간단한 테스트를 우해서 2초마다 data명령어를 실행하는 스크립트를 짜보자

명령
# vi while

코드
#!/bin/bash
while [ 1 ] # while 의 조건부분에 1을 주어서 늘 참이 되게 한다
do
    echo `date` # data명령어를 실행해서 결과값을 echo로 화면에 출력
    sleep 2 # 2초를 쉬어준다
done



명령어를 실행시켜서 스크립틀를 바이너리화 하고 파일을 확인해보자
$ shc -f while
$ ls
while  while.x  while.x.c
본래의 스크립트 파일하나 바이너리파일인 .x 그리고 쉘스크립트가 c코드로 변환되었던 .c코드가 있습니다
vim으로 while.x코드를 열면 바이너리화되서 코드를 알아볼수가 없구요 ^^

좀더나아가서 기간을 지정해서 기간이 넘었을경우에는 스크립트를 사용하지 못하도록 할수가 있습니다. -e라는 명령어를 이용해서 유저로긴접속을 몇일이후에는 못들어오도록 하는 것처럼 스크립트에도 똑같이 적요알수 있습니다. 예제를 보시죠

# shc -e 07/07/2009 -m "No No No" -f while
# ./while.x
./while.x: has expired!
NoNoNo
일부러 지난 날짜를 집어 넣었습니다. 자신이 -m에 입력한 메시지를 뿌려주면 expired가 되었다고 나오죠 ^^
반응형