문제 1] 사용자들의 존재 여부를 확인하는 스크립트를 작성하시오. (사용자 폴더는 /home, /data) - if 사용
예)
# su adduser.sh
ENTER USER : scv
scv 사용자는 /home 폴더에 있는 사용자입니다.
모범 답안
# vi adduser.sh
---------------------------------------------------------
#!/bin/bash
echo -n "ENTER USER : "
read A
if [ -d /home/$A ] || [ -d /home/*/$A ]
then
echo "$A 사용자는 /home 폴더에 있는 사용자입니다."
elif [ -d /data/$A ] || [ -d /data/*/$A ]
then
echo "$A 사용자는 /data 폴더에 있는 사용자입니다."
elst
echo "$A 사용자는 없는 사용자입니다."
fi
---------------------------------------------------------
# cat adduser.sh
예)
# su adduser.sh
ENTER USER : scv
scv 사용자는 /home 폴더에 있는 사용자입니다.
모범 답안
# vi adduser.sh
---------------------------------------------------------
#!/bin/bash
echo -n "ENTER USER : "
read A
if [ -d /home/$A ] || [ -d /home/*/$A ]
then
echo "$A 사용자는 /home 폴더에 있는 사용자입니다."
elif [ -d /data/$A ] || [ -d /data/*/$A ]
then
echo "$A 사용자는 /data 폴더에 있는 사용자입니다."
elst
echo "$A 사용자는 없는 사용자입니다."
fi
---------------------------------------------------------
# cat adduser.sh
# sh adduser.sh
ENTER USER : scv
scv 사용자는 /home 폴더에 있는 사용자입니다.
# sh adduser.sh
ENTER USER : shin
shin는 /data/shin에 있는 사용자 입니다.
#
문제 2] 자동차의 모델명과 연비를 입력하면 에너지 등급을 알려주는 스크립트를 작성하시오. - if 사용
5보다 작으면 5등급
7보다 작으면 4등급
9보다 작으면 3등급
11보다 작으면 2등급
12보다 크면 1등급
예)
#su if5.sh
연비를 에너지 소비 등급으로 바꿔줍니다.
모델명 : sonata
측정한 연비 : 6
sonata의 에너지 소비 등급은 4등급입니다.
모범답안
# vi if5.sh
---------------------------------------------------------
#!/bin/bash
echo "연비를 에너지 소비 등급으로 바꿔줍니다."
echo " "
echo "모델명 : "
read model
echo "측정한 연비 : "
read oil
echo " "
if [ $oil -lt 5 ]
then
echo "$model의 에너지 소비 등급은 5등급입니다."
elif [ $oil -lt 7 ]
then
echo "$model의 에너지 소비 등급은 4등급입니다."
elif [ $oil -lt 9 ]
then
echo "$model의 에너지 소비 등급은 3등급입니다."
elif [ $oil -lt 11 ]
then
echo "$model의 에너지 소비 등급은 2등급입니다."
else
echo "$model의 에너지 소비 등급은 1등급입니다."
fi
---------------------------------------------------------
문제 3] /etc/shadow 파일의 사용유무를 확인하는 스크립트를 작성하시오. - if 사용
단, 사용하고 있는 경우에는 사용한다는 표시를 하고
사용하고 있지 않다면 사용하지 않다고 표시를 하고나서 /etc/shadow 파일을 사용하게 만드시오.
만약 /etc/shadow 파일을 사용하고 있지 않은데 사용한다고 하는 경우에는
사용하지 않는다고 표시를 하고 /etc/shadow 파일을 사용하게 만드시오.
# vi if6.sh
---------------------------------------------------------
#!/bin/bash
echo -n "shadow file use??? (y or n) : "
read Y
if [ "$Y" = "y" -o "$Y" = "Y" -o "$Y" = "YES" -o "$Y" = "yes" ] && [ -e /etc/shadow ]
then
echo "shadow file use!!!"
exit
elif [ "$Y" = "n" -o "$Y" = "N" -o "$Y" = "NO" -o "$Y" = "no" ] && [ -e /etc/shadow ]
then
echo "shadow file use!!!"
exit
else
echo " "
echo "잘못 된 입력값을 입력하셨습니다."
echo " "
sh if6-1.sh
exit
fi
if [ $Y = n ] || [ $Y = N ] || [ $Y = NO ] || [ $Y = no ]
then
echo "shadow file not use!!!"
echo "pwconv now"
pwconv
exit
elif [ $Y = y ] || [ $Y = Y ] || [ $Y = YES ] || [ $Y = yes ]
then echo "shadow file not use!!!"
echo "pwconv now"
pwconv
exit
fi
---------------------------------------------------------
문제 4] 두개의 아규먼트로 입력받아 syslog 를 start, stop, restart 를 실행하고
잘못된 아규먼트 값을 입력 받으면 syntex error!!! 를 출력하는 스크립트를 작성하시오.
# vi service.sh
---------------------------------------------------------
#!/bin/bash
if [ "$1" = "syslog" ] && [ "$2" = "start" ]
then
echo "service $1 $2"
service syslog start
exit
elif [ "$1" = "syslog" ] && [ "$2" = "stop" ]
then
echo "service $1 $2"
service syslog stop
exit
elif [ "$1" = "syslog" ] && [ "$2" = "restart" ]
then
echo "service $1 $2"
service syslog restart
exit
else
echo " "
echo "syntex error !!!"
echo "(service_name) (start/stop/restart)"
exit
fi
---------------------------------------------------------
ENTER USER : scv
scv 사용자는 /home 폴더에 있는 사용자입니다.
# sh adduser.sh
ENTER USER : shin
shin는 /data/shin에 있는 사용자 입니다.
#
문제 2] 자동차의 모델명과 연비를 입력하면 에너지 등급을 알려주는 스크립트를 작성하시오. - if 사용
5보다 작으면 5등급
7보다 작으면 4등급
9보다 작으면 3등급
11보다 작으면 2등급
12보다 크면 1등급
예)
#su if5.sh
연비를 에너지 소비 등급으로 바꿔줍니다.
모델명 : sonata
측정한 연비 : 6
sonata의 에너지 소비 등급은 4등급입니다.
모범답안
# vi if5.sh
---------------------------------------------------------
#!/bin/bash
echo "연비를 에너지 소비 등급으로 바꿔줍니다."
echo " "
echo "모델명 : "
read model
echo "측정한 연비 : "
read oil
echo " "
if [ $oil -lt 5 ]
then
echo "$model의 에너지 소비 등급은 5등급입니다."
elif [ $oil -lt 7 ]
then
echo "$model의 에너지 소비 등급은 4등급입니다."
elif [ $oil -lt 9 ]
then
echo "$model의 에너지 소비 등급은 3등급입니다."
elif [ $oil -lt 11 ]
then
echo "$model의 에너지 소비 등급은 2등급입니다."
else
echo "$model의 에너지 소비 등급은 1등급입니다."
fi
---------------------------------------------------------
문제 3] /etc/shadow 파일의 사용유무를 확인하는 스크립트를 작성하시오. - if 사용
단, 사용하고 있는 경우에는 사용한다는 표시를 하고
사용하고 있지 않다면 사용하지 않다고 표시를 하고나서 /etc/shadow 파일을 사용하게 만드시오.
만약 /etc/shadow 파일을 사용하고 있지 않은데 사용한다고 하는 경우에는
사용하지 않는다고 표시를 하고 /etc/shadow 파일을 사용하게 만드시오.
# vi if6.sh
---------------------------------------------------------
#!/bin/bash
echo -n "shadow file use??? (y or n) : "
read Y
if [ "$Y" = "y" -o "$Y" = "Y" -o "$Y" = "YES" -o "$Y" = "yes" ] && [ -e /etc/shadow ]
then
echo "shadow file use!!!"
exit
elif [ "$Y" = "n" -o "$Y" = "N" -o "$Y" = "NO" -o "$Y" = "no" ] && [ -e /etc/shadow ]
then
echo "shadow file use!!!"
exit
else
echo " "
echo "잘못 된 입력값을 입력하셨습니다."
echo " "
sh if6-1.sh
exit
fi
if [ $Y = n ] || [ $Y = N ] || [ $Y = NO ] || [ $Y = no ]
then
echo "shadow file not use!!!"
echo "pwconv now"
pwconv
exit
elif [ $Y = y ] || [ $Y = Y ] || [ $Y = YES ] || [ $Y = yes ]
then echo "shadow file not use!!!"
echo "pwconv now"
pwconv
exit
fi
---------------------------------------------------------
문제 4] 두개의 아규먼트로 입력받아 syslog 를 start, stop, restart 를 실행하고
잘못된 아규먼트 값을 입력 받으면 syntex error!!! 를 출력하는 스크립트를 작성하시오.
# vi service.sh
---------------------------------------------------------
#!/bin/bash
if [ "$1" = "syslog" ] && [ "$2" = "start" ]
then
echo "service $1 $2"
service syslog start
exit
elif [ "$1" = "syslog" ] && [ "$2" = "stop" ]
then
echo "service $1 $2"
service syslog stop
exit
elif [ "$1" = "syslog" ] && [ "$2" = "restart" ]
then
echo "service $1 $2"
service syslog restart
exit
else
echo " "
echo "syntex error !!!"
echo "(service_name) (start/stop/restart)"
exit
fi
---------------------------------------------------------
'Linux > Exercise' 카테고리의 다른 글
네트워크 서비스 보안 - Iptables 예제(1) (0) | 2009.02.02 |
---|---|
쉘프로그래밍 기초 3 - 연습용 (0) | 2008.11.24 |
쉘프로그래밍 기초 2 - 연습용 (0) | 2008.11.21 |
리눅스 시스템 1차 테스트 - 모범답안 (1) | 2008.11.19 |
리눅스 시스템 1차 테스트 - 연습용 (0) | 2008.11.19 |
원격 서버에 로그 남기기 - 연습용 (0) | 2008.11.17 |