(자작)shell 프로그래밍으로 한꺼번에 많은 유저 생성하기

· 21년 전 · 2991 · 1
#!/bin/bash
########################################################
# AUTOUSERADD alpha.V.1.0 2004.12.1
# coypyright(c)조훈현
# E-mail : sajg@naver.com
#-------------------------------------------------------
# * 프로그램 설명 :
# 이프로그램은 한그룹에 속한 많은 수의 유저를 한번에
# 원하는 수만큼 자동적으로 생성해준다.
#-------------------------------------------------------
# !!! 주 의 사 항!!!
#
# * 생성계정의 패스워드는 없으므로 보안상 즉시 패스워드를
# 입력하시는 것이 좋습니다.
# * /etc/shadow 파일을 이용하고 있어야 합니다.
# * 이프로그램 사용으로 인한 어떠한 피해도 저작권자는
# 책임없음을 밝혀 둡니다.
# * REDHAT LINUX ES 3 에서 TEST하였습니다.
#
# ******************** 사 용 법 *************************
#
# 1. root 계정에서 실행하셔야 합니다.
# 2. $PATH에 autouseradd가 존재하는 디렉토리를 추가
# 하십시오.
# 3. 실행권한이 있어야 합니다.
#
# autouseradd [userid군] [생성될 유저의 수] [속할그룹]
# ex) autouseradd sajgj 100 project
#
# 생성결과
# 1. /home/project 디렉토리 생성
# 2. /home/project/sajgj1 .....sajgj10.....sajgj50 ..
# sajgj100 디렉토리 총 100개 생성
# 3. project 그룹에 속한 sajgj1~ sajgj100 유저생성
# 이들의 홈디렉토리는 /home/project/[자신의ID]
# 4. 초기패스워드는 없음. 자신의 계정에서 passwd 명령
# 으로 생성해주면 된다.
# 5. 그외 사항들은 일반사항은 useradd 명령어와 같다.
#########################################################

var=1

if [ -n "$3" ] # 세번째 argument가 입력되었는지 확인
then
### 그룹이름 얻기 ###
grpattern=`grep -w $3 /etc/group`
grpattern=${grpattern%%:*}

### GID 를 얻는다 98번줄 GID입력을 위해 쓰인다.###
grpatterngid=`grep -w $3 /etc/group`
grpatterngid=${grpatterngid#*:}
grpatterngid=${grpatterngid#*:}
grpatterngid=${grpatterngid%:*}

### 얻은 그룹과 파라미터가 패턴이 ###
### 맞는지 확인 후 맞지 않으면 그룹을 추가한다. ###
if [ "$3" != "$grpattern" ]
then
echo "$3 그룹이 존재하지 않습니다."
echo "$3 그룹을 추가합니다."
groupadd $3 # groupadd $3
echo "$3 그룹을 추가하였습니다. 명령을 다시 실행하십시오."
exit 0
fi

###그룹 디렉토리를 만든다.###
mkdir /home/$3
chown root:$3 /home/$3


while [ $var -le $2 ]
do

### 추가하려는 아이디가 존재하는지 확인 ###
patternid=`grep -w $3 /etc/passwd`
patternid=${patternid%%:*}
if [ "$1$var" = "$patternid" ]
then
echo "추가하려고 하는 $1$var 아이디가 존재합니다."
var=`expr $var - 1 `
if [ "$var" = 0 ]
then
echo "아이디를 추가하지 못했습니다."
else
echo "$11 부터 $1$var 아이디까지 추가하였습니다."
fi
exit 0
fi


### 추가할 uid 를 계산한다. ###
tailine=`tail -1 /etc/passwd`
tailine=${tailine#*:}
tailine=${tailine#*:}
tailine=${tailine%%:*}
tailine=`expr $tailine + 1`

### 실질적인 useradd 작업 ###
echo "$1$var:x:$tailine:$grpatterngid::/home/$3/$1$var:/bin/bash" >> /etc/passwd
echo "$1$var::12754:0:99999:7:::" >> /etc/shadow
touch /var/spool/mail/$1$var

mkdir /home/$3/$1$var
cp -a /etc/skel/. /home/$3/$1$var
chown -R $1$var:$3 /home/$3/$1$var

var=`expr $var + 1`

done

echo "작업 완료 !! cat /etc/passwd, cat /etc/shadow , ls -l /home/$3 하여 모든명령이 실행되었는지 확인하여주십시오."

else
echo " autouseradd 세번째 argument에 그룹이름을 입력하지 않으셨습니다."
fi

exit 0
#######################끝########################<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]</div>
|

댓글 1개

참고로 이명령의 용도는 linux 교육시나 한부서의 여러사람 계정 생성할때 사용하면 좋을것 같습니다.
한꺼번에 100명 이상의 계정을 추가하려면 그것도 일이지요?
하지만 이명령어를 이용하면 빠르게 생성할수 있습니다.
또한 같은 그룹에 속한 사용자들끼리의 계정은 서로 r_x 권한이 있습니다.
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
20년 전 조회 1,986
20년 전 조회 1,715
20년 전 조회 5,047
20년 전 조회 4,673
20년 전 조회 3,608
20년 전 조회 3,888
20년 전 조회 7,163
20년 전 조회 3,639
20년 전 조회 2,719
20년 전 조회 2,723
20년 전 조회 7,282
20년 전 조회 4,695
20년 전 조회 1,993
20년 전 조회 3,347
20년 전 조회 2,047
20년 전 조회 1,656
20년 전 조회 2,405
20년 전 조회 1,883
20년 전 조회 1,554
20년 전 조회 1,909
20년 전 조회 3,078
20년 전 조회 2,539
20년 전 조회 1,832
20년 전 조회 1,755
20년 전 조회 4,084
20년 전 조회 3,027
20년 전 조회 3,744
20년 전 조회 3,540
21년 전 조회 3,851
21년 전 조회 8,660
21년 전 조회 2,694
21년 전 조회 3,844
21년 전 조회 3,302
21년 전 조회 2,700
21년 전 조회 2,767
21년 전 조회 2,678
21년 전 조회 2,963
21년 전 조회 3,134
21년 전 조회 5,402
21년 전 조회 4,002
21년 전 조회 5,051
21년 전 조회 6,302
21년 전 조회 7,434
21년 전 조회 1.9만
21년 전 조회 6,982
21년 전 조회 2,977
21년 전 조회 4,237
21년 전 조회 2,577
21년 전 조회 4,410
21년 전 조회 2,992
21년 전 조회 2,347
21년 전 조회 2,568
21년 전 조회 2,326
21년 전 조회 2,660
21년 전 조회 1,840
21년 전 조회 1,669
21년 전 조회 1,742
21년 전 조회 2,210
21년 전 조회 1,973
21년 전 조회 2,468
21년 전 조회 3,660
21년 전 조회 1,668
21년 전 조회 1,869
21년 전 조회 3,275
21년 전 조회 2,452
21년 전 조회 3,258
21년 전 조회 2,980
21년 전 조회 3,399
21년 전 조회 5,216
21년 전 조회 2,626
21년 전 조회 4,914
21년 전 조회 2,609
21년 전 조회 3,210
21년 전 조회 7,717
21년 전 조회 3,925
21년 전 조회 3,308
21년 전 조회 4,798
21년 전 조회 3,000
21년 전 조회 6,333
21년 전 조회 4,582
21년 전 조회 5,881
21년 전 조회 3,734
21년 전 조회 6,069
21년 전 조회 3,215
21년 전 조회 2,937
21년 전 조회 2,722
21년 전 조회 2,532
21년 전 조회 2,737
21년 전 조회 2,782
21년 전 조회 3,898
21년 전 조회 2,914
21년 전 조회 2,561
21년 전 조회 2,364
21년 전 조회 3,163
21년 전 조회 3,231
21년 전 조회 2,592
21년 전 조회 2,694
21년 전 조회 3,078
21년 전 조회 2,425
21년 전 조회 2,845