웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[알아서 나쁠것없는 10원짜리 팁!] 수십 수백명사용자의 일괄생성 방법!
2002.05.09 22:43
쉘스크립트이용한 수백명의 사용자 단한번에 끝내기!
[전 한학교의 고등학생인데 학생들의 계정발급을 위해 (약 300명정도) 이 스크립트를 구성했습니다.
300명 다추가하려니 손이 근질거려서요-_-]
학교나, 관공서, 군대(?) 등에서 번호나, 일정한 패턴을 가진 아이디로 유저
를 생성할때
그 작업을 일일히 하자면 아주 따분하고 시간이 많이 걸리게 된다. 그러나,
간단한 쉘 스크립트를
이용해서, 수천명의 사람도 단 한번에 끝낼수있다. (컴퓨터의 성능에따라 틀
리나, 셀러론 300의 서버에서도
200명의 사용자는 약 5초정도에 끝났다)
1. 스크립트의 구성
스크립트는 3부분으로 나누어진다(필자가만든것이 복잡할수도있다.)
- txtmaker : 유저를 일괄생성하는 프로그램이 참조하는 txt 파일을 생성한
다.
- deltxt : 중복을 방지하기위해 이전에 생성된 txt 파일을 삭제한다.
- autoadduser : txtmaker 만든 userinfo.txt 파일을 참조하여, 유저를 일괄
생성하고 비밀번호를 아이디와 같게한다.
보안상문제는 상당하게 있을수있다. 일단 이러한 정보를 아는사람이면, 운영
자가
유저를 생성했을때 이미 비밀번호를 알수있기때문에 그때 위험할 가능성이있
다.
이러한 가능성을 배제하는 독특한 아이디어는 떠오르지 않는다-_-;
(사람들을 믿을뿐이죠^^;) 혹시 좋은 아이디어라도?
2. 스크립트의 소스
# 주의 : 이 예제는 저희 고등학고 의 이니셜을 딴 sdhs에 학번을 결합시켜
sdhs[학번] 과 같은꼴의 아이디를
생성하는 프로그램입니다. sdhs 대신에 어떤것이든 수정이 가능하니, 소스
를 잘 보시고 상황에맞게
고쳐쓰시기바랍니다.^^
- txtmaker 의 소스
#!/bin/bash
echo " 지금부터 $1 사용자부터 $2 사용자까지의 텍스트 파일을 생성합니
다."
echo " 형식 : [0000:0000] "
limit=$2
for ((a=$1; a<=limit ; a++))
do
echo sdhs$a:sdhs$a >> userinfo.txt
done
echo " $1 부터 $2 까지 생성을 완료하였습니다 "
매우 난잡한 소스다-_-;; $1 과 $2 가 의미하는것은 쉘에서 다음과같이 입력
이 가능하다
#shell> txtmaker 1 9999
이렇게 하게되면 $1 은 1이되고 9999는 $2 가 되는것이다. 고로 1부터 9999
번까지의 파일을 생성하라는
말이된다. txtmaker 가 있는 디렉토리에 userinfo.txt 파일이 위치하게되고
다른프로그램이 이를 참조하여
유저를 일괄생성한다.
- userinfo.txt 의 내용
sdhs1:sdhs1
sdhs2:sdhs2
sdhs3:sdhs3
sdhs4:sdhs4
sdhs5:sdhs5
아이디:비밀번호
아이디:비밀번호의 꼴입니다. 즉 아이디와 비밀번호가 같게 되는것이죠. 모
든사용자의 비밀번호를 똑같게
하려면, 저 소스에서 비밀번호에 해당하는 부분을 바꿔주시면되겠죠?
- deltxt 의 소스
#!/bin/bash
rm -f userinfo.txt
echo "삭제완료"
단지 userinfo.txt 파일을 삭제하고, 삭제완료라는 메시지를 출력하는 프로
그램입니다.
- autoadduser 의 소스
#!/bin/bash
for i in `awk -F : '{print $1}' userinfo.txt`
do
echo "$i 사용자의 계정생성작업 시작"
useradd -m -k /webhosting/skel -s /bin/bash -d /home/students/$i -g
webhost $i
#######################################################################
###################
# /webhosting/skel 대신에 홈디렉토리에 채워질 내용을 담은 디렉토리를 지
정해주세요. 스켈레톤디렉토리
# /bin/bash 대신에 /bin/false 를 하시면 텔넷접속을 막습니다. 그러나
ftp 데몬에서 쉘이없는 사용자도
# 로그인이 가능하게 해줘야겠죠?
# -d 옵션다음에는 홈디렉토리를 정해줍니다.
# -g 옵션다음에는 기본그룹을 지정해주지요
#######################################################################
###################
echo "$i 사용자의 홈디렉토리, 쉘, 그룹설정완료"
echo "$i 사용자의 홈디렉토리 권한을 701 로 설정합니다.."
chmod 701 /home/students/$i
echo "$i 사용자의 홈디렉토리 권한이 701 로 설정되었습니다.."
echo "$i 사용자의 public_html 권한을 705 로 설정합니다"
chmod 705 /home/students/$i/public_html
echo "$i 사용자의 모든 설정을 완료 하였습니다."
done
echo "지금부터 모든 사용자의 패쓰워드를 일괄적으로 바꿉니다"
chpasswd < userinfo.txt
echo "모든사용자의 비밀번호가 일괄적으로 바뀌었습니다"
echo "모든사용자의 계정세팅이 끝났습니다"
echo "이전에 생성된 userinfo.txt 파일을 삭제합니다"
./deltxt
쭈욱 따라가보시면 굉장히 쉬운 소스입니다. 마지막에는 deltxt 프로그램을
실행시켜서, 유저파일을 삭제하게되죠.
중간 중간에 디렉토리의 권한을 www 서비스에 맞게 바꿔즈는 소스가 있습니
다.(나름대로 변형이 가능하죠)
3. 맺음
저 3개 의 간단한 스크립트로, 학교,관공서 군대 또는 실습중인 학원 등에
서 재빨리 계정을 생성할수있습니다.
그리고 skel 의 내용안에는 public_html 이 위치해야겠죠? 그리고 ftp 서비
스도 가동하셔야겠구요.
저의 skel 디렉토리에는 다음과 같은 파일이 존재합니다.
drwxr-xr-x 3 root root 4096 May 9 16:22 .
drwxr-xr-x 13 root root 4096 May 9 16:31 ..
-rw-r--r-- 1 root root 24 May 2 15:57 .bash_logout
-rw-r--r-- 1 root root 233 May 2 16:00 .bash_profile
-rw-r--r-- 1 root root 125 May 2 15:58 .bashrc
drwxr-xr-x 2 root root 4096 May 3 13:39 public_html
.bashrc 나 .bash_profile 같은 파일이없으면 사용자가 비밀번호를 변경하
려 로그인했을때 약간 낯선 쉘을
맞이하게되니까, 넣어주시는게 좋습니다^^
public_html 은 apache 에서 정해준 디렉토리에 따라 수정이 가능하죠.
public_html 안에는 index.html 을 기본으로 넣어줘서 계정 생성이 제대로
됐나 확인할수있게합니다.
저의 index.html 의 내용은 이렇습니다..
[root@dopesoul public_html]# cat index.html
<html>
<title>Welcome to Dopesoul web server</title>
<body>
<h1>환영합니다!</h1>
<br><br>
당신은 정상적인 방법에의해 계정을 취득하셨습니다.<br>
서버이용에관한 자세한 문의는 관리자에게 해주십시요.<br>
당신은 ftp 서버에 접속하거나, 나모웹에디터, 드림위버와같은 WYSIWYG 툴을
이용<br>
하여, 본 서버에 홈페이지를 등록할수있습니다.<br>
<br><br>
- Root 드림 -<br>
<br>
관리자 E-mail : byulkorea@empal.com<br>
</body>
</html>
[root@dopesoul public_html]#
이로써 -_- 날림 스크립트로 쉽게쉽게 계정생성하는 법을 알려드렸습니다.
아무쪼록 쓸모있게 쓰시길 바라면서! 물러갑니다.. (__)(--)
If you have any question please e-mail to [byulkorea@empal.com]
[전 한학교의 고등학생인데 학생들의 계정발급을 위해 (약 300명정도) 이 스크립트를 구성했습니다.
300명 다추가하려니 손이 근질거려서요-_-]
학교나, 관공서, 군대(?) 등에서 번호나, 일정한 패턴을 가진 아이디로 유저
를 생성할때
그 작업을 일일히 하자면 아주 따분하고 시간이 많이 걸리게 된다. 그러나,
간단한 쉘 스크립트를
이용해서, 수천명의 사람도 단 한번에 끝낼수있다. (컴퓨터의 성능에따라 틀
리나, 셀러론 300의 서버에서도
200명의 사용자는 약 5초정도에 끝났다)
1. 스크립트의 구성
스크립트는 3부분으로 나누어진다(필자가만든것이 복잡할수도있다.)
- txtmaker : 유저를 일괄생성하는 프로그램이 참조하는 txt 파일을 생성한
다.
- deltxt : 중복을 방지하기위해 이전에 생성된 txt 파일을 삭제한다.
- autoadduser : txtmaker 만든 userinfo.txt 파일을 참조하여, 유저를 일괄
생성하고 비밀번호를 아이디와 같게한다.
보안상문제는 상당하게 있을수있다. 일단 이러한 정보를 아는사람이면, 운영
자가
유저를 생성했을때 이미 비밀번호를 알수있기때문에 그때 위험할 가능성이있
다.
이러한 가능성을 배제하는 독특한 아이디어는 떠오르지 않는다-_-;
(사람들을 믿을뿐이죠^^;) 혹시 좋은 아이디어라도?
2. 스크립트의 소스
# 주의 : 이 예제는 저희 고등학고 의 이니셜을 딴 sdhs에 학번을 결합시켜
sdhs[학번] 과 같은꼴의 아이디를
생성하는 프로그램입니다. sdhs 대신에 어떤것이든 수정이 가능하니, 소스
를 잘 보시고 상황에맞게
고쳐쓰시기바랍니다.^^
- txtmaker 의 소스
#!/bin/bash
echo " 지금부터 $1 사용자부터 $2 사용자까지의 텍스트 파일을 생성합니
다."
echo " 형식 : [0000:0000] "
limit=$2
for ((a=$1; a<=limit ; a++))
do
echo sdhs$a:sdhs$a >> userinfo.txt
done
echo " $1 부터 $2 까지 생성을 완료하였습니다 "
매우 난잡한 소스다-_-;; $1 과 $2 가 의미하는것은 쉘에서 다음과같이 입력
이 가능하다
#shell> txtmaker 1 9999
이렇게 하게되면 $1 은 1이되고 9999는 $2 가 되는것이다. 고로 1부터 9999
번까지의 파일을 생성하라는
말이된다. txtmaker 가 있는 디렉토리에 userinfo.txt 파일이 위치하게되고
다른프로그램이 이를 참조하여
유저를 일괄생성한다.
- userinfo.txt 의 내용
sdhs1:sdhs1
sdhs2:sdhs2
sdhs3:sdhs3
sdhs4:sdhs4
sdhs5:sdhs5
아이디:비밀번호
아이디:비밀번호의 꼴입니다. 즉 아이디와 비밀번호가 같게 되는것이죠. 모
든사용자의 비밀번호를 똑같게
하려면, 저 소스에서 비밀번호에 해당하는 부분을 바꿔주시면되겠죠?
- deltxt 의 소스
#!/bin/bash
rm -f userinfo.txt
echo "삭제완료"
단지 userinfo.txt 파일을 삭제하고, 삭제완료라는 메시지를 출력하는 프로
그램입니다.
- autoadduser 의 소스
#!/bin/bash
for i in `awk -F : '{print $1}' userinfo.txt`
do
echo "$i 사용자의 계정생성작업 시작"
useradd -m -k /webhosting/skel -s /bin/bash -d /home/students/$i -g
webhost $i
#######################################################################
###################
# /webhosting/skel 대신에 홈디렉토리에 채워질 내용을 담은 디렉토리를 지
정해주세요. 스켈레톤디렉토리
# /bin/bash 대신에 /bin/false 를 하시면 텔넷접속을 막습니다. 그러나
ftp 데몬에서 쉘이없는 사용자도
# 로그인이 가능하게 해줘야겠죠?
# -d 옵션다음에는 홈디렉토리를 정해줍니다.
# -g 옵션다음에는 기본그룹을 지정해주지요
#######################################################################
###################
echo "$i 사용자의 홈디렉토리, 쉘, 그룹설정완료"
echo "$i 사용자의 홈디렉토리 권한을 701 로 설정합니다.."
chmod 701 /home/students/$i
echo "$i 사용자의 홈디렉토리 권한이 701 로 설정되었습니다.."
echo "$i 사용자의 public_html 권한을 705 로 설정합니다"
chmod 705 /home/students/$i/public_html
echo "$i 사용자의 모든 설정을 완료 하였습니다."
done
echo "지금부터 모든 사용자의 패쓰워드를 일괄적으로 바꿉니다"
chpasswd < userinfo.txt
echo "모든사용자의 비밀번호가 일괄적으로 바뀌었습니다"
echo "모든사용자의 계정세팅이 끝났습니다"
echo "이전에 생성된 userinfo.txt 파일을 삭제합니다"
./deltxt
쭈욱 따라가보시면 굉장히 쉬운 소스입니다. 마지막에는 deltxt 프로그램을
실행시켜서, 유저파일을 삭제하게되죠.
중간 중간에 디렉토리의 권한을 www 서비스에 맞게 바꿔즈는 소스가 있습니
다.(나름대로 변형이 가능하죠)
3. 맺음
저 3개 의 간단한 스크립트로, 학교,관공서 군대 또는 실습중인 학원 등에
서 재빨리 계정을 생성할수있습니다.
그리고 skel 의 내용안에는 public_html 이 위치해야겠죠? 그리고 ftp 서비
스도 가동하셔야겠구요.
저의 skel 디렉토리에는 다음과 같은 파일이 존재합니다.
drwxr-xr-x 3 root root 4096 May 9 16:22 .
drwxr-xr-x 13 root root 4096 May 9 16:31 ..
-rw-r--r-- 1 root root 24 May 2 15:57 .bash_logout
-rw-r--r-- 1 root root 233 May 2 16:00 .bash_profile
-rw-r--r-- 1 root root 125 May 2 15:58 .bashrc
drwxr-xr-x 2 root root 4096 May 3 13:39 public_html
.bashrc 나 .bash_profile 같은 파일이없으면 사용자가 비밀번호를 변경하
려 로그인했을때 약간 낯선 쉘을
맞이하게되니까, 넣어주시는게 좋습니다^^
public_html 은 apache 에서 정해준 디렉토리에 따라 수정이 가능하죠.
public_html 안에는 index.html 을 기본으로 넣어줘서 계정 생성이 제대로
됐나 확인할수있게합니다.
저의 index.html 의 내용은 이렇습니다..
[root@dopesoul public_html]# cat index.html
<html>
<title>Welcome to Dopesoul web server</title>
<body>
<h1>환영합니다!</h1>
<br><br>
당신은 정상적인 방법에의해 계정을 취득하셨습니다.<br>
서버이용에관한 자세한 문의는 관리자에게 해주십시요.<br>
당신은 ftp 서버에 접속하거나, 나모웹에디터, 드림위버와같은 WYSIWYG 툴을
이용<br>
하여, 본 서버에 홈페이지를 등록할수있습니다.<br>
<br><br>
- Root 드림 -<br>
<br>
관리자 E-mail : byulkorea@empal.com<br>
</body>
</html>
[root@dopesoul public_html]#
이로써 -_- 날림 스크립트로 쉽게쉽게 계정생성하는 법을 알려드렸습니다.
아무쪼록 쓸모있게 쓰시길 바라면서! 물러갑니다.. (__)(--)
If you have any question please e-mail to [byulkorea@empal.com]
댓글 6
-
박세욱
2002.05.09 23:45
plaese -> please -_-; -
임현
2002.05.10 01:35
고쵸쑵니당~-_-; -
박용열
2002.05.13 00:05
#######################################################################
###################
# /webhosting/skel 대신에 홈디렉토리에 채워질 내용을 담은 디렉토리를 지
정해주세요. 스켈레톤디렉토리
# /bin/bash 대신에 /bin/false 를 하시면 텔넷접속을 막습니다. 그러나
ftp 데몬에서 쉘이없는 사용자도
# 로그인이 가능하게 해줘야겠죠?
# -d 옵션다음에는 홈디렉토리를 정해줍니다.
# -g 옵션다음에는 기본그룹을 지정해주지요
#######################################################################
################### -
V(^o^)V
2002.05.13 21:34
오~ 좋은방법이군요.... -
NTD
2002.05.16 23:46
TT 전 이런거 하고 싶어서 신청하는 사람이 없어서 ;; -
必
2002.06.19 04:43
200명분의 아이디와 pass가 동일한 계정을 만드는것보다
초기 200명의 주민등록번호 뒤 7자리와 아이디로 계정을 만드시는것이
보안에 좋지 않을까요?
아이디 쯤이야 쉽게 알 수 있는 자료죠
제목 | 글쓴이 | 날짜 |
---|---|---|
리눅스 서버를 구축해 보자! #1 [11] | 꼬토 | 2002.11.21 |
ab 를 이용한 간편한 아파치 성능 측정 [2] | 정인배 | 2002.11.15 |
윈xp pro 를 net 서버로 바꾸기
[7]
![]() | 정회철 | 2002.11.13 |
사용자 자동 등록 쉘스크립트 [1] | 편리 | 2002.11.05 |
OpenBSD3.2 설치가이드 - 완결 [3] | pravda | 2002.11.02 |
[Apache] 윈도우 NT 계열에 서비스 등록하기
[1]
![]() | 스카이 | 2002.09.08 |
웹호스팅의 꽃 A.P.M.~ 을 알아보자! (1부) [9] | 임현 | 2002.08.25 |
http://도메인/~아이디 를 http://도메인/아이디 로 ^^ [11] | 임현 | 2002.07.31 |
오랜만에 올리는 팁이군요. - 웹호스팅 쉽게해보기! - [8] | 임현 | 2002.07.28 |
특정 파일(ex: mp3,avi,mpg)만 찾아서 자동으로 삭제하기! | 임현 | 2002.06.27 |
Mysql 데이타베이스 백업및 복구(2)... [5] | 이휘은 | 2002.06.22 |
간단팁 서버 Info! [4] | 임현 | 2002.06.21 |
하드디스크의 모든성능을 써버리자! [4] | 임현 | 2002.06.14 |
[알아서 나쁠것없는 10원짜리 팁!] 수십 수백명사용자의 일괄생성 방법! [6] | 임현 | 2002.05.09 |
Apache2.0.35 + php4.3.0-devel 설치하기;; [15] | Cksoft | 2002.04.08 |
리눅스 아주 간단한 사용자 계정 주기-_- [7] | i- | 2002.03.12 |
근사모의 APM_steup3설치 법 [5] | 뽀유★ | 2002.03.01 |
아파치 가상 유저 설정하기 [6] | i- | 2002.02.24 |
에러페이지를 서버관리자가 지정한 페이지로. [1] | teenteenv | 2002.02.21 |
[APM자동설치] APM_Setup 3 ( Apache, PHP4, MySQL, Perl, Tomcat ) [6] | 근땅e | 2002.02.06 |