Bash 从文本文件创建批量帐户

Bash 从文本文件创建批量帐户,bash,account,creation,Bash,Account,Creation,我有以下脚本,它从users.txt读取第一个和第二个字段,并使用它们生成用户名和密码,并为每一行创建帐户。问题是脚本只为前两行创建帐户,而不为其余行创建帐户 #!/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

我有以下脚本,它从users.txt读取第一个和第二个字段,并使用它们生成用户名和密码,并为每一行创建帐户。问题是脚本只为前两行创建帐户,而不为其余行创建帐户

#!/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

#/bin/bash
FILE=/home/knoppix/users.txt
USERSH=/bin/bash
而IFS=“:”读取GECOS USRGRP;做
groupadd-f$USRGRP
USERNM=“u$(cat/dev/uradom | tr-dc'0-9'| fold-w 6 | head-n 1)”
USERPW=$(cat/dev/urandom | tr-dc'a-zA-Z0-9'|折叠-w 6 |头部-n 1)
useradd$USERNM-p$USERPW-g$USRGRP-c“$GECOS$USRGRP”-d$HOME/$USERNM-s$USERSH-m
账户=$(grep$USRNM/etc/passwd)
echo“${tgrn}帐户创建成功!${tr}”
回显“$ACCNT”
回显“凭证”
echo“${tred}用户名:${tr}$USERNM${tred}密码:${tr}$USERPW”
回声
完成<$FILE
#/bin/bash
而IFS=:读取GECOS USRGRP;做
#您的groupadd和useradd命令位于此处
完成
Hi抱歉,上面的脚本没有更新,我正在使用IFS。现在的问题是,它只添加了文本文件中的前两个帐户。如果您希望我们调试脚本,则需要发布实际脚本。是时候读一本新书了,为什么Jo:hnny不能拥有Unix帐户。(此处为强制性参考。)将其置于
groupadd
命令之前,并发布输出:
echo“[$GECOS][$USRGRP]”;继续
root@Microknoppix:/home/knoppix#./accounts[Jose David Garcia][Student][Yasin Ahmed][Student][犹他州国王][Student][Michael Jackson][Student]甚至没有读最后一行(堆栈溢出:staffs听起来文件有些可疑。如果你要接受答案,请不要破坏你的问题。这会使答案毫无意义。
#!/bin/bash

while IFS=: read GECOS USRGRP; do

    # your groupadd and useradd commands here

done < /home/knoppix/users.txt
#!/bin/bash
for line in $file; do
# make the account

done
rm $file
touch $file