我正在尝试编写一个脚本,从文本文件创建多个用户,然后将它们添加到我创建的名为“实习生”的组中。我想设置默认密码“AIST2330PASSWORD”,然后提示用户在登录时更改密码。我现在的代码是
for i in $(cat users.txt)
do
echo useradd -m -s /bin/bash -G interns $i
useradd -m -s /bin/bash -G interns $i
echo "AIST2330PASSWORD" | passwd --stdin $i
passwd -e $i
echo "User needs to chnage pw upon reentry"
done
我收到的错误是:
paaswd: Permission denied.
User needs to change pw upon reentry
useradd -m -s /bin/bash -G interns hmccoy
'seradd: invalid user name 'hmccoy
passwd: unrecognized option '--stdin'
我究竟做错了什么?
答案1
您收到错误是因为Ubuntu 中passwd: unrecognized option '--stdin'
没有通过 STDIN--stdin
使用命令提供密码的选项。passwd
您不能使用passwd
命令以非交互方式传递密码,而在交互式 shell 中,passwd
使用 STDIN 来获取密码。这只发生在交互式操作中,如果您使用管道等 shell 程序,它将不起作用。
由于您希望为所有人创建具有相同密码的批量用户,因此也许您应该查看newusers
适合您情况的命令。