【发布时间】:2011-12-31 21:06:08
【问题描述】:
我有以下脚本,它从 users.txt 中读取第一个和第二个字段,并使用它们生成用户名和密码,并为每一行创建帐户。问题是脚本只为前 2 行创建帐户,而不是为其余行创建帐户
#!/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
【问题讨论】:
-
新书时间到了,为什么 Jo:hnny 不能拥有 Unix 帐户。 (必选XKCD 参考这里。)
-
把它放在你的
groupadd命令之前并发布输出:echo "[$GECOS] [$USRGRP]"; continue -
root@Microknoppix:/home/knoppix# ./accounts [Jose David Garcia] [Student] [Yasin Ahmed] [Student] [Utah King] [Student] [Michael Jackson] [Student] 是甚至没有读到最后一行(堆栈溢出:staff
-
听起来这个文件有些可疑。
-
如果您要接受答案,请不要破坏您的问题。它使答案毫无意义。