• Linux下批量添加用户的脚本三种方法


    作为一个系统管理员,可能要经常的为机器添加用户,可能是在一台机器上添加很多用户,也有可能是在很多机器上要添加同一个用户。

    基本上,批量添加用户有两种方式,一是用useradd + passwd命令配合脚本来添加,二是用newusers+chpasswd来添加。

    第一个方法合适用来在不同的机器上添加不同的用户,或者在同一台机器上添加大量的规则命名的用户。第二个方法可用于在同一台机器上添加大量的用户名单,如将A机上的用户全部添加到B机上。

    方法一:useradd + passwd命令配合脚本来添加

    其中users.list文件内容如下:

    johnson
    lily
    kelly

    执行结果如下图所示:

    由脚本知,用户的初始密码被设为用户名+123,大家可以按需修改使用。

    方法二、使用while语句

    #!/bin/bash
    user_info=/root/adduser.txt
    useradd=/usr/sbin/useradd
    passwd=/usr/bin/passwd
    cut=/bin/cut
    while read lines
    do
        username=`echo $lines | $cut -f1 -d' '`
        password=`echo $lines | $cut -f2 -d' '`
        $useradd $username
        if [ $? -ne 0 ];then
            echo "$username cunzai,bunengxiugaimima"
        else
            echo $password | $passwd
        fi
    done < $user_info

    其中adduser.txt存的文件为

    username001 password001
    username002 password002
    username003 password003
    username004 password004

    方法三、newusers+chpasswd批量添加用户

    1、首先我们创建用户文件和密码文件;

    我们要创建包含新用户的文件userfile.txt ;另一个是为新添加的用户设置密码的userpwdfile.txt;

    [root@localhost ~]# touch userfile.txt
    [root@localhost ~]# touch userpwdfile.txt

    然后用文本编辑器打开文件userfile.txt,添加如下内容;

    win00:x:520:520::/home/win00:/sbin/nologin
    win01:x:521:521::/home/win01:/sbin/nologin
    win02:x:522:522::/home/win02:/sbin/nologin
    win03:x:523:523::/home/win03:/sbin/nologin
    win04:x:524:524::/home/win04:/sbin/nologin
    win05:x:525:525::/home/win05:/sbin/nologin
    win06:x:526:526::/home/win06:/sbin/nologin
    win07:x:527:527::/home/win07:/sbin/nologin
    win08:x:528:528::/home/win08:/sbin/nologin
    win09:x:529:529::/home/win09:/sbin/nologin

    userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;

    我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同且严格按照“用户名:密码”的格式来写,一个用户一行;也就是说我们先是添加了win00到win09的用户,现在要为这些用户更新密码;比如下面的;

    win00:123456
    win01:654321
    win02:123321
    win03:qweewq
    win04:google
    win05:adadwc
    win06:wsscee
    win07:xxec32
    win08:543wew
    win09:3ce3wf

    2、用newusers批量添加用户,此时用户是没有密码的

    [root@localhost ~]# newusers userfile.txt

    2、执行命令/usr/sbin/pwunconv,将/etc/shadow产生的shadow密码解码,然后回写到/etc/passwd中, 并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消shadow password功能,关闭影子文件。

    [root@localhost ~]# pwunconv

    3、 用chpasswd批量修改密码
    [root@localhost ~]# chpasswd < userpwdfile.txt

    4、最后不要忘了恢复影子文件,保证安全,您可以通过下面的命令来映射到 /etc/shadow文件名

    [root@localhost ~]# pwconv
  • 相关阅读:
    配置文件配置网络
    安装Linux centos 7.3
    java二维字符数组的输入
    前端保存JSON文件到本地
    在Springboot中使用swagger2
    Vue better-scroll使用指南
    解决端口占用问题
    CheckSum(校验和)计算
    区分按字寻址与按字节寻址
    进制转换
  • 原文地址:https://www.cnblogs.com/fungitive/p/9136235.html
Copyright © 2020-2023  润新知