【ubuntu】批量创建用户

linux新建用户方法主要有两种:

adduser

useradd

adduser 可以按照提示一步步的创建用户。

useradd则完全由用户指定主目录,bash目录等位置。

详细介绍可参考:https://www.linuxidc.com/Linux/2017-02/140793.htm

由于adduser是linux一步步提示完成的,不利于批量处理,因此本方法使用的是useradd。

代码如下:

#!/bin/bash

for i in {1..20}
do
	username=test$i;
	echo $username;
	if [ -n $username ]
	then
		sudo useradd -d /home/$username -s /bin/bash -m $username
		echo $username:$username | sudo chpasswd
		echo "user $username added!"
	else
		echo "the username is null!"
	fi
done

在写的时候遇到的主要问题有以下几个:

1,for循环不能迭代输出,主要是运行方法不对。需要

bash xxx.sh

运行即可。具体可参考:https://stackoverflow.com/questions/169511/how-do-i-iterate-over-a-range-of-numbers-defined-by-variables-in-bash

2,不能通过

echo $2 | passwd --stdin $1

设置密码,否则会报 passwd: unrecognized option '--stdin' 的错误。主要原因是ubuntu不支持--stdin的选项。因此,只能使用

echo $username:$username | sudo chpasswd

设置密码。

3,登陆后用户名只出现 $,原因是未设置 shell版本和用户登录主目录,因此

sudo useradd -d /home/$username -s /bin/bash -m $username

此句中的 -d 和 -s必不能省,分别用来设置用户目录和bash位置。

4,如果在/etc/profile里面设置了环境变量,则需要在各个目录下面执行一遍

source /etc/profile

使环境变量生效。

最后,此程序实现的功能是:

添加20个用户,并将用户名和密码设置为相同的 testx;如果想将用户密码设为其他值,则修改

echo $username:$username | sudo chpasswd 

这一行中的第二个 $username为其他值即可。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值