솔라리스 10 스크립트 조언좀..부탁드리겠습니다.
글쓴이: rbqja1798 / 작성시간: 금, 2018/03/30 - 4:49오후
#!/bin/sh
# Default 계정 삭제
CURRENT_PATH=`dirname $0`
NAME=`basename $0`
ETC_PATH="$CURRENT_PATH/../etc"
RESULT="$CURRENT_PATH/result_$NAME.txt"
#### 시작
echo "Default 계정이 삭제되어 있는가?" >> ${RESULT} 2>&1
default="adm|lp|sync|shutdown|halt|news|uucp|operator|games|gopher|nfsnobody|squid"
if [ -z cat /etc/passwd -a egrep ${default} ]; then 2>&1
echo "양호" >> ${RESULT} 2>&1
else
echo "취약" >> ${RESULT} 2>&1
echo "" >> ${RESULT} 2>&1
fi
#### 종료
echo "" >> ${RESULT} 2>&1
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 수정해서 스크립트 실행되고 결과 값도 저장이 되는데
조건에 -z 붙여서 문자열이 0이라서 참으로 떠야되는데 계속 취약으로 뜨네요..
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 66.79 KB |
Forums:
텍스트 뿐인 내용 화면 캡처는 안 해도 됩니다.
텍스트 뿐인 내용 화면 캡처는 안 해도 됩니다.
소스 코드는 code 태그 안에. https://kldp.org/node/158191 참고.
-z 옵션에 대해 공부해 보시면 답이 나올 듯 한데... 저보다 고수님의 좋은 답변을 기다려 보셔요...
세벌 https://sebuls.blogspot.kr/
음 ..
스크립트로 실행되고 결과도 저장되었겠지만 정상적으로 실행된 게 아닙니다.
if [ -z cat /etc/passwd -a egrep ${default} ] 에서..
-z 의 인수로는 cat 이 들어갔지만 나머지는 문법 에러입니다.
test 문에 인수가 많다고 에러 떠서, 결과는 아마도 계속 '취약' 으로 나왔을 것 같은데요..
cat /etc/passwd | egrep ${default} 실행의 결과를 문자열로 받아야 하므로..
if [ -z "`cat /etc/passwd | egrep ${default}`" ] 와 같이
명령어 앞 뒤로 ` (back quote) 를 붙여서 실행되게 해주시고..
다시 앞 뒤로 " (큰 따옴표) 를 추가로 붙여주면, 원하는 대로 나올 겁니다.
-z 에는 "" 로 감싸인 하나의 문자열이 통으로 들어가고, 그 문자열은 명령을 실행한 결과가 되겠죠.
끝으로 불필요한 2>&1 를 너무 많이 쓰시는데..
stderr 로 에러메시지가 출력되는 명령에서만 사용하면 됩니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기