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 ]; thenecho -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
douseradd -m -s /bin/bash ${username}	 # new username (default create home directory and use /bin/bash)if [ "$pwmech" == "openssl" ]; thenusepw=$(openssl rand -base64 6)	 # it will output a random string that's 8 characters long#else#	usepw=$usernamefiecho "$username:$usepw" | chpasswd 	 # new passwordchage -d 0 $username 			     # force password changeecho "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.rhkb.cn/news/206741.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RevCol实战:使用RevCol实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

2023年,再不跳槽,就晚了···

以 BAT 为代表的互联网大厂,无论是薪资待遇、还是平台和福利,都一直是求职者眼中的香饽饽,“大厂经历” 在国内就业环境中无异于一块金子招牌。 很多想进大厂的朋友都在问,该怎么备战 2023年? 为此我专门打造了一份《…

视频监控中的智能算法与计算机视觉技术

智能视频监控是一种基于人工智能技术的监控系统,它能够通过对图像和视频数据进行分析,自动识别目标物体、判断其行为以及进行异常检测等功能,从而实现对场景的智能化监管。以下是常见的一些用于智能视频监控的算法: 1、人脸识别技…

Prometheus环境搭建和认识

Prometheus 环境搭建 1.prometheus 简介 Prometheus是基于go语言开发的一套开源的监控、报警和时间序列数据库的组合,是由SoundCloud公司开发的开源监控系统,Prometheus于2016年加入CNCF(Cloud Native Computing Foundation,云原生计算基金…

从微软Cosmos DB浅谈一致性模型

最近回顾了微软的Cosmos DB的提供一致性级别,重新整理下一致性模型的相关内容。 0. Cosmos DB Cosmos DB(Azure Cosmos DB)是由微软推出的一个支持多模型、多 API 的全球分布式数据库服务。它旨在提供高度可扩展性、低延迟、强一致性和全球…

智能优化算法应用:基于乌鸦算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于乌鸦算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于乌鸦算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.乌鸦算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

MySQL之JDBC

💕"我像离家的孤儿,回到了母亲的怀抱,恢复了青春。"💕 作者:Mylvzi 文章主要内容:MySQL之JDBC 一.什么是JDBC? JDBC编程就是通过Java 代码来操纵数据库 数据库编程, 需要数据库服务器提供一些API供程序…

C#常见的设计模式-创建型模式

引言 在软件开发过程中,设计模式是一种被广泛采用的思想和实践,可以提供一种标准化的解决方案,以解决特定问题。设计模式分为三种类型:创建型模式、结构型模式和行为型模式。本篇文章将重点介绍C#中常见的创建型模式。 目录 引言…

JavaScript中数据类型的转换

前端面试大全JavaScript中数据类型的转换 🌟经典真题 🌟数据类型转换介绍 🌟强制转换(显式转换) Number( ) String( ) Boolean( ) 🌟自动转换(隐式转换) 自动转换为布尔值 …

基于SpringBoot房产销售系统

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于房产销售系统当然也不能排除在外,随着网络技术的不断成熟,带动了房产销售系统,它彻底改变了过去传统的…

Go 中切片(Slice)的长度与容量

切片长度与容量在 Go 中很常见。切片长度是切片中可用元素的数量,而切片容量是从切片中第一个元素开始计算的底层数组中的元素数量。 Go 中的开发者经常混淆切片长度和容量,或者对它们不够了解。理解这两个概念对于高效处理切片的核心操作,比…

Linux C/C++高级全栈开发(后端/游戏/嵌入式/高性能网络/存储/基础架构)

Linux C/C高级全栈开发是一个涉及到多个领域的综合性技术要求,需要对Linux系统、C/C编程语言以及各种相关的技术进行深入的理解和应用。 下面是一些涵盖的主要技术领域和技能要点: Linux系统基础:熟悉Linux操作系统的原理和常用命令&#xf…

AIGC 3D即将爆发,混合显示成为产业数字化的生产力平台

2023年,大语言模型与生成式AI浪潮席卷全球,以文字和2D图像生成为代表的AIGC正在全面刷新产业数字化。而容易为市场所忽略的是,3D图像生成正在成为下一个AIGC风口,AIGC 3D宇宙即将爆发。所谓AIGC 3D宇宙,即由文本生成3D…

pulseaudio是如何测试出音频延迟的

通常专业的音频设备生产厂商都有专业的设备来测试精确的音频链路延时。 那么没有专业设备怎么测试出音频延迟呢?如下图,我们可以看到pulseaudio可以测试出硬件音频延迟。 那么,他是怎么测试出硬件延迟的呢?他的理论依据是什么呢?接下来我带大伙一起探索一下。 /*占位…

使用new Vue()的时候发生了什么?

前言 Vue.js是一个流行的JavaScript前端框架,用于构建单页面应用(SPA)和用户界面。当我们使用new Vue()来创建一个Vue实例时,Vue会执行一系列的初始化过程,将数据变成响应式,编译模板,挂载实例…

【vue实战项目】通用管理系统:信息列表,信息录入

本文为博主的vue实战小项目系列中的第六篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容: 【vue实战项目】通用管理系统:登录页-CSDN博客 【vue实战项目】通用管理系统:封装token操作…

Swagger在php和java项目中的应用

Swagger在php和java项目中的应用 Swagger简介Swagger在java项目中的应用步骤常用注解 Swagger在php项目中的应用 Swagger简介 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 总体目标是使客户端和文件系统作为服务器以…

分治法之归并排序

思路: 将待排序数组分成两个子数组,计算中间位置mid。对左半部分进行递归排序,得到一个有序的子数组。对右半部分进行递归排序,得到另一个有序的子数组。合并两个有序的子数组,得到一个完整的有序数组。 示例图: 代码: #include&…

关于微服务的思考

目录 什么是微服务 定义 特点 利弊 引入时机 需要哪些治理环节 从单体架构到微服务架构的演进 单体架构 集群和垂直化 SOA 微服务架构 如何实现微服务架构 服务拆分 主流微服务解决方案 基础设施 下一代微服务架构Service Mesh 什么是Service Mesh&#xff1f…

金石工程项目管理系统 SQL注入漏洞复现

0x01 产品简介 金石工程项目管理软件是一款工程项目管理软件,专门针对建筑工程项目开发,可以用于各种工地的项目管理。 0x02 漏洞概述 金石工程项目管理系统TianBaoJiLu.aspx接口处存在SQL注入漏洞,攻击者可通过该漏洞获取数据库中的信息(例如&#xff…