======================================================================
LAB> until 문을 이용한 사용자 로그인 체크 # useradd testuser # echo 1234 | passwd --stdin testuser # install /dev/null usercheck.sh # vi usercheck.sh -- usercheck.sh -- #!/bin/sh username=testuser until [ "`w | grep -q $username`" = 0 ] do sleep 1 printf . done -- usercheck.sh -- # ./usercheck.sh ==================================================================== ==================================================================== [root@fw ~]# echo $SHLVL 1 [root@fw ~]# set [root@fw ~]# env [root@fw ~]# printenv [root@fw ~]# ls -l /bin/bash -rwxr-xr-x 1 root root 735804 Jul 22 2011 /bin/bash [root@fw ~]# bash [root@fw ~]# echo $SHLVL 2 [root@fw ~]# bash [root@fw ~]# echo $SHLVL 3 [root@fw ~]# exit exit [root@fw ~]# echo $SHLVL 2 [root@fw ~]# exit exit [root@fw ~]# echo $SHLVL [root@fw ~]# echo $SHLVL 1 [root@fw ~]# set [root@fw ~]# env [root@fw ~]# printenv [root@fw ~]# ls -l /bin/bash -rwxr-xr-x 1 root root 735804 Jul 22 2011 /bin/bash [root@fw ~]# bash [root@fw ~]# echo $SHLVL 2 [root@fw ~]# bash [root@fw ~]# echo $SHLVL 3 [root@fw ~]# exit exit [root@fw ~]# echo $SHLVL 2 [root@fw ~]# exit exit [root@fw ~]# echo $SHLVL 1 [root@fw ~]# [root@fw ~]# echo $SHLVL 1 [root@fw ~]# A=10 [root@fw ~]# echo $A 10 [root@fw ~]# bash [root@fw ~]# echo $SHLVL 2 [root@fw ~]# echo $A [root@fw ~]# exit exit [root@fw ~]# echo $SHLVL 1 [root@fw ~]# export A [root@fw ~]# echo $SHLVL 1 [root@fw ~]# echo $A 10 [root@fw ~]# bash [root@fw ~]# echo $SHLVL 2 [root@fw ~]# echo $A 10 ==================================================================== ==================================================================== LAB> 사용자를 자동으로 생성하는 스크립트를 생성해보자. 사용법 : useradd.sh <username> <userpass> 파일명 : /usr/sbin/useradd.sh (-rwx------) # install /dev/null /usr/sbin/useradd.sh # vi /usr/sbin/useradd.sh -- /usr/sbin/useradd.sh -- #!/bin/sh # argument count argc=$# if [ $argc -eq 0 ]; then echo "Usage : `basename $0` <username> <userpass>" echo " Written by k.s.w " exit 1 fi useradd $1 if [ $? -eq 0 ]; then echo $2 | passwd --stdin $1 fi -- /usr/sbin/useradd.sh -- -- 실행결과 -- - 명령어의 인자가 없을 때 에러를 출력하고 프로그램을 종료한다. # useradd.sh Usage : useradd.sh <username> <userpass> Written by k.s.w # useradd.sh testuser useradd: user testuser exists - 사용자 testuser2 1234 를 생성한다. # useradd.sh testuser2 1234 Changing password for user testuser2. passwd: all authentication tokens updated successfully. - 생성된 사용자로 로그인을 한다. # ssh testuser2@localhost testuser2@localhost's password: $ id uid=505(testuser2) gid=505(testuser2) groups=505(testuser2) -- 실행결과 -- ====================================================================
==================================================================== LAB> 여러명의 사용자를 자동으로 생성하는 스크립트를 생성해보자. $# : 인자의 개수 $0 : 명령어 $1 ~ ... : 인자의 순서 $@ : 전체 인자들 $* : 전체 인자들 # dd if=/usr/sbin/useradd.sh of=/usr/sbin/useradd2.sh # rsync /usr/sbin/useradd.sh /usr/sbin/useradd2.sh # cat /usr/sbin/useradd.sh > /usr/sbin/useradd2.sh # chmod 755 /usr/sbin/useradd2.sh # install /usr/sbin/useradd.sh /usr/sbin/useradd2.sh # cp -a /usr/sbin/useradd.sh /usr/sbin/useradd2.sh -- useradd2.sh -- #!/bin/sh # argument count argc=$# # 사용자의 계정명과 비번을 입력하지 않았다면 사용법을 출력하고 프로그램을 종료한다. if [ $argc -eq 0 ]; then echo "Usage : `basename $0` username [username ...]" echo " Written by k.s.w " exit 1 fi # 전체 사용자 수 만큼 반복해서 돌려서 생성해라. for user in $@ do useradd $user if [ $? -eq 0 ]; then passwd $user fi done -- useradd2.sh -- -- 실행결과 -- # useradd2.sh testuser11 testuser22 testuser33 -- 실행결과 -- ====================================================================
'Linux > 쉘스크립트' 카테고리의 다른 글
문자열 조작 (0) | 2015.05.13 |
---|---|
내부 변수(Internal Variables) (0) | 2015.05.12 |
5. 루프 (0) | 2015.05.06 |
4. 테스트와 분기(Testing and Branching) (0) | 2015.05.04 |
3. 비교 연산자(이진) (0) | 2015.05.04 |