쉘스크립트의 내용을 보여주면 안되는 경우가 종종있을것이다 일반사용자에게 스크립트를 실행시킬수 있도록하는데 내용이 알려지면 안된다던지. 이런 경우 말이다 그럴경우에는 스크립트를 컴파일해주는 유용한 shc(Generic shell script compiler)라는 유틸리티가 있다 먼져 shc를 설치해보자
그리고 간단한 테스트를 우해서 2초마다 data명령어를 실행하는 스크립트를 짜보자
명령
코드
명령어를 실행시켜서 스크립틀를 바이너리화 하고 파일을 확인해보자
vim으로 while.x코드를 열면 바이너리화되서 코드를 알아볼수가 없구요 ^^
좀더나아가서 기간을 지정해서 기간이 넘었을경우에는 스크립트를 사용하지 못하도록 할수가 있습니다. -e라는 명령어를 이용해서 유저로긴접속을 몇일이후에는 못들어오도록 하는 것처럼 스크립트에도 똑같이 적요알수 있습니다. 예제를 보시죠
$ sudo apt-get install shc
그리고 간단한 테스트를 우해서 2초마다 data명령어를 실행하는 스크립트를 짜보자
명령
# vi while
코드
#!/bin/bash
while [ 1 ] # while 의 조건부분에 1을 주어서 늘 참이 되게 한다
do
echo `date` # data명령어를 실행해서 결과값을 echo로 화면에 출력
sleep 2 # 2초를 쉬어준다
done
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코드가 있습니다 $ ls
while while.x while.x.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가 되었다고 나오죠 ^^ # ./while.x
./while.x: has expired!
NoNoNo
반응형