这个选项用于从标准输入管道读入新的密码。
使用 echo 方式来重置Linux 系统用户密码:
echo “新密码”|passwd --stdin 用户名
too many arguments的意思是:参数太多。line6表示:第六行。仔细看看你的脚本第六行,是不是有多余的符号把你的参数隔开了,使得参数看起来太多了。
变量num是你要创建的用户个数,在for循环中,需要调用变量i来控制执行次数,你调用了变量num
赶紧登陆root账号再新建回来
批量删除普通用户
第9行 for (( i= i ;i<=$num;i=i+1 )
你那里写错了,应该是数字1 ,不是 i
第25行 /usr/sbin/useradd $name$! &>/dev/null
是&name&i不是!
把pass变量的值 传递到下一条命令 passwd -stdin $name里
执行完后用输出重定向的方式丢进黑洞里 (/dev/null)
好的,这个问题是我代码看错了,已经解决了,大家不用回复了 ^_^
嗯,就是这样的
! -n 相当于 -z
是同一个s,作用是做累加计算的。比方说加到90了前面89个数字的和需要记录下来在加上90才对
我尝试了一下,在Ubuntu下passwd命令是不支持 --stdin 参数的,查下资料说在debian上就不再支持了,不知道你的是不是Ubuntu系统呢?
我尝试了在CentOS上没有问题,当然Ubuntu上可以通过下面的命令代替:
echo "$name$i:$pass" | chpasswd &> /dev/null
/usr/sbin/useradd是这个命令的绝对路径,在脚本执行中,搜索命令的路径和在系统中直接运行是不一致的,所以建议命令写绝对路径