当前位置: 首页 > article >正文

Linux环境下自动化创建大量的账号

参考《鸟哥的Linux私房菜基础篇第四版》13.7.2节微调而成:

下面脚本的目的是为服务器的管理员自动化创建大量的账号,节省生命。

#!/bin/bash
# This shell script will create amount of Linux login accounts for you.
# 1. check the "accountadd.txt" file exist? you mush create that file manually.
# one account name one line in the "accountadd.txt" file.
# 2. use openssl to create users password.
# 3. user must change his password in his first login.
# 4. more option.
# 2023/11/26	chen peng
export PATH
# 0. userinput
pwmech="openssl"
# 1. check the accountadd.txt file
if [ ! -f accountadd.txt ]; then
	echo -e "There is no accountadd.txt file, stop here."
	exit 1
fi
rm -f outputpw.txt	# clear outputpw.txt to place new account's password
usernames=$(cat accountadd.txt)
for username in $usernames
do
	useradd -m -s /bin/bash ${username}	 # new username (default create home directory and use /bin/bash)
	if [ "$pwmech" == "openssl" ]; then
		usepw=$(openssl rand -base64 6)	 # it will output a random string that's 8 characters long
	#else
	#	usepw=$username
	fi
	echo "$username:$usepw" | chpasswd 	 # new password
	chage -d 0 $username 			     # force password change
	echo "username=$username, password=$usepw" >> outputpw.txt
done

运行命令之前的条件:

  1. 手动在该脚本(accountadd.sh)所在目录下创建一个文本文件accountadd.txt,文件的内容是每一行代表待创建的用户名,例如我这次要一次性创建两个账户,它们分别是st01,st02,即:
    在这里插入图片描述
  2. 获得root权限,利用sudo -i 并且输入自己账户的密码,然后进入脚本的目录。

运行命令

  1. 输入脚本执行命令,加入选项-x能够看见脚本执行的过程以方便debug
    bash -x accountadd.sh
    
    输出如下:
    + export PATH
    + pwmech=openssl
    + '[' '!' -f accountadd.txt ']'
    + rm -f outputpw.txt
    ++ cat accountadd.txt
    + usernames='st01
    st02'
    + for username in $usernames
    + useradd -m -s /bin/bash st01
    + '[' openssl == openssl ']'
    ++ openssl rand -base64 6
    + usepw=dQX+awTv
    + echo st01:dQX+awTv
    + chpasswd
    + chage -d 0 st01
    + echo 'username=st01, password=dQX+awTv'
    + for username in $usernames
    + useradd -m -s /bin/bash st02
    + '[' openssl == openssl ']'
    ++ openssl rand -base64 6
    + usepw=H8zNuqFI
    + echo st02:H8zNuqFI
    + chpasswd
    + chage -d 0 st02
    + echo 'username=st02, password=H8zNuqFI'
    
  2. 拿到你所创建的用户及其初始密码,该用户登录后会被强制要求更改密码。
    在这里插入图片描述

http://www.kler.cn/a/145442.html

相关文章:

  • 【25美赛A题-F题全题目解析】2025年美国大学生数学建模竞赛(MCM/ICM)解题思路|完整代码论文集合
  • [VSCode] vscode下载安装及安装中文插件详解(附下载链接)
  • Linux的常用指令的用法
  • Android GLSurfaceView 覆盖其它控件问题 (RK平台)
  • Linux C openssl aes-128-cbc demo
  • 7-Zip Mark-of-the-Web绕过漏洞复现(CVE-2025-0411)
  • Javascript的闭包有哪些应用?
  • 城市NOA加速落地,景联文科技高质量数据标注助力感知系统升级
  • 【公网远程手机Android服务器】安卓Termux搭建Web服务器
  • 电商又有大动静,又一短视频进军电商领域!
  • CountDownLatch实战应用——批量数据多线程协调异步处理(子线程执行事务回滚)
  • (离散数学)命题逻辑推理二:间接推理
  • 【Python爬虫实战项目】ip代理池项目原理及代码解析
  • 使用Pytorch从零开始构建Conditional PixelCNN
  • docker环境安装
  • Pycharm创建项目新环境,安装Pytorch
  • Linux安装jdk8【十分丝滑】
  • webpack配置完热更新之后还是会刷新整个页面
  • 思维模型 古烈治效应
  • 数据结构 / 顺序表操作 / 顺序表堆区申请内存
  • CDA一级备考思维导图
  • 物联网中基于信任的安全性调查研究:挑战与问题
  • [设计模式] 常见的设计模式
  • 批量将本地N个英文Html文档进行中文翻译-源码篇
  • MySQL 8 手动安装后无法启动的问题解决
  • Unity SRP 管线【第三讲:URP 光照】