2011-11-18 2 views
3

다음 스크립트가 있는데, 첫 번째와 두 번째 필드를 users.txt에서 읽고이를 사용하여 사용자 이름과 암호를 생성하고 각 줄에 대한 계정을 만듭니다. 문제가 스크립트는 새로운 책 enter image description here텍스트 파일에서 대량 계정 생성

#!/bin/bash 
FILE=/home/knoppix/users.txt 
USERSH=/bin/bash 


while IFS=":" read GECOS USRGRP ; do 

groupadd -f $USRGRP 



USERNM="u$(cat /dev/urandom| tr -dc '0-9' | fold -w 6| head -n 1)" 
USERPW=$(cat /dev/urandom| tr -dc 'a-zA-Z0-9' | fold -w 6| head -n 1) 


useradd $USERNM -p $USERPW -g $USRGRP -c "$GECOS,$USRGRP" -d $HOME/$USERNM -s $USERSH -m 

ACCNT=$(grep $USRNM /etc/passwd) 
echo "${tgrn}Account creation successful!${tr}" 
echo "$ACCNT" 
echo "Credentials" 
echo "${tred}Username:${tr} $USERNM ${tred}Password:${tr} $USERPW" 
echo 
done < $FILE 
+0

시간이 아닌 나머지

에 대한 최초의 2 개 라인에 대한 계정을 만드는 것입니다, _Why 조는 : 니는 할 수 없습니다 Unix 계정이 있어야합니다 ._ (축약적인 [XKCD] (http://xkcd.com/327/) 참조) – sarnold

+0

'groupadd' 명령 전에 이것을 넣고 출력을 게시하십시오 :'echo "[$ GECOS] [$ USRGRP]"; CONTINUE ' –

+0

루트 @의 Microknoppix :/홈/크노픽스 번호의 ./accounts [호세 데이비드 가르시아] [학생] [야신 아메드] [학생] [유타 왕] [학생] [마이클 잭슨] [학생] 마지막 줄을 읽지도 않습니다. (스택 오버 플로우 : 스태프 –

답변

3
#!/bin/bash 

while IFS=: read GECOS USRGRP; do 

    # your groupadd and useradd commands here 

done < /home/knoppix/users.txt 
+0

안녕하세요. 죄송합니다. 위의 스크립트는 업데이트되지 않았으며, IFS를 사용하고 있습니다. 이제 문제는 단지 텍스트 파일의 처음 두 계정을 추가한다는 것입니다. –

+2

우리가 디버그하기를 원하면 실제 스크립트를 게시해야합니다. –

0
#!/bin/bash 
for line in $file; do 
# make the account 

done 
rm $file 
touch $file