在 Linux 系统中批量创建新用户,并且要求用户登陆即改变密码
- 在 Linux 系统中批量创建新的用户
- 使用的命令:
- useradd
 - passwd
 - chage
 
 
 - 使用的命令:
 
脚本示列:
#/bin/bash
for user in `cat newuser.txt`
  do 
    echo "$user"
    useradd $user
    echo "$user@123" | passwd "$user" --stdin
    chage -d 0 $user
  done
通过使用 for 循环,将cat命令输出的文本内容依次提取,每次提取都是用户名,该用户名存入变量 $user 当中。
简单的 echo 这是为了输出每次创建到哪位用户,下一行通过 useradd 命令添加用户。
脚本中初次创建的用户的密码是:用户名@123。通过管道符标准输出传递给 passwd,passwd 后面要有指定的用户名称,如果没有就是修改当前的执行的用户的密码。
chage -d 0 的作用等效于 passwd -e,在 chage 中 -d 指的是设置最后一次密码更改的日期;passwd 中的 -e 则是 expire 作用是使得指定账户的密码失效,两者的作用自然都是 在用户初次登录后就立即修改原始的 用户名@123 密码。
验证脚本:
创建有一个文本文件,在 newuser.txt 中每行分别有 tom、jack、luna 这三位用户名。
[root@localhost ~]# ./useradd.sh
tom
Changing password for user tom.
passwd: all authentication tokens updated successfully.
jack
Changing password for user jack.
passwd: all authentication tokens updated successfully.
luna
Changing password for user luna.
passwd: all authentication tokens updated successfully.
启动脚本后运行完成。
这里以 tom 为初始登录举例子:
tom 用户的第一次登陆:
login as: tom
tom@192.168.10.10's password:    # 输入了初始密码,这里是 tom@123
You are required to change your password immediately (root enforced)
Last login: Thu May  2 10:44:09 2024 from 192.168.10.1
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user tom.
Changing password for tom.
(current) UNIX password:  # 再次输入之前的初始密码
New password:    # 开始修改原来的密码
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word  # 由于密码简单系统认为需要更复杂的密码
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# 密码修改成功后 ssh 登录断开
tom 用户的第二次登陆
login as: tom
tom@192.168.10.10's password:   # 输入 tom 用户修改后的密码
# 成功登陆,当前目录是用户的家目录
[tom@localhost ~]$ pwd
/home/tom
                    
                
                
            
        
浙公网安备 33010602011771号