欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux批量添加和删除新用户和密码

程序员文章站 2022-07-14 14:05:36
...

今天老师给了我一个学生信息的文件,让我在服务器上批量创建用户名和密码都是学生学号的账号。一百多个账号,肯定不能手动建,所以写个脚本进行批量创建是最好不过的办法了。

  1. 首先,创建user.txt。里面全是用户账号以换行分割
    比如:
user01
user02
user03

其中批量添加用户和密码的脚本如下:(系统是ubuntu)

#!/bin/bash
for user in `cat user.txt`
do
        mkdir /home/$user
        useradd -d /home/$user -g users -s /bin/bash $user
        chown $user /home/$user
        chgrp users /home/$user
        echo $user:$user | chpasswd
done

关于
linux命令useradd添加用户详解

执行脚本即可创建批量账号
可用cat /etc/passwd查看用户账号情况

可能遇到的问题:
我一开始在创建用户的时候没有指定shell,在ubuntu下默认是/bin/sh。所以在登录新用户的时候会出现按退格键出现^H ,按上下左右键可能会出现
^ [ [A^[ [B的问题,这是由于没有指定shell的类型导致的
解决:在adduser的时候指定shell的类型,-s /bin/bash就不会出现上述问题了。

上述是ubuntu系统批量创建用户的方式,下面是centoOS批量创建新用户的方式
同样要准备好user.txt(同上)
编写脚本adduser.sh

for user in `cat userr.txt`
         do       
                 useradd $user
                 echo $user | passwd --stdin $user;
                 echo "$user add successfuly"
         done 

是不是看起来要简单很多,CentOS下创建新用户时adduser操作中默认指定shell类型是/bin/bash,所以不会出现上述导致的问题。

批量删除用户
deluser.sh

#!/bin/bash
for user in `cat user.txt`
do
        userdel -r $user
        echo "$user delete successfully"
done

然后再查看passwd文件 cat /etc/passwd是否删除user文件中的所有用户。
如果出现有个别用户没有删除,可能是你登录了该用户账号但是没有退出,导致系统进程在运行无法删除,这时可手动kill 掉该账号所在的进程 比如:kill -9 37621。再次重新登录root账号userdel操作即可删除。