【问题标题】:Bulk account creation from text file从文本文件批量创建帐户
【发布时间】: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
  • 听起来这个文件有些可疑。
  • 如果您要接受答案,请不要破坏您的问题。它使答案毫无意义。

标签: bash account creation


【解决方案1】:
#!/bin/bash
for line in $file; do
# make the account

done
rm $file
touch $file

【讨论】:

    【解决方案2】:
    #!/bin/bash
    
    while IFS=: read GECOS USRGRP; do
    
        # your groupadd and useradd commands here
    
    done < /home/knoppix/users.txt
    

    【讨论】:

    • 您好,抱歉上面的脚本没有更新,我正在使用 IFS。现在的问题是它只添加了文本文件中的前两个帐户
    • 如果您希望我们调试它,您需要发布您的实际脚本。
    猜你喜欢
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多